|
sas
Modularised monitoring, logging, and control of robots.
|
Directories | |
| launch | |
| sas_robot_driver_gazebo | |
| scripts | |
| src | |
Check any licenses in repositories in vendor if you decide to use them. This repository's owner holds no liability for misuse.
The two folders below have special meanings, the others follow usual naming.
| Folder | Meaning |
|---|---|
| sdf | Base Gazebo scene files. |
| vendor | Vendor models. Check the licenses if you decide to use them in your work. They are not shared in this repo |
Each relevant joint to be controlled should have a plugin specification similar to the following, using gz::sim::systems::JointPositionController.
Joints are read from a default gz::sim::systems::JointStatePublisher.
Each node loads its parameters from a YAML configuration file. The default is config/config.yaml in this package; pass a different file with the config_file:= launch argument of the corresponding launch file.
| Property | Value |
|---|---|
| Executable | sas_robot_driver_ros_gazebo.py |
| ROS node name | ur3e_1 (set by the name launch argument of robot_driver_server_launch.py) |
| Description | Bridges ROS and Gazebo. Subscribes to Gazebo joint states and publishes target joint positions, running the RobotDriverROS control loop. |
| Parameter | Type | Mandatory / Optional | Default | Purpose |
|---|---|---|---|---|
| joint_names | array of strings | Mandatory | none — must be provided | Names of the Gazebo joints to control |
| joint_positions_topic_prefix | string | Mandatory | none — must be provided | Gazebo topic prefix for target joint positions |
| joint_states_topic | string | Mandatory | none — must be provided | Gazebo topic of the joint states to read |
| robot_name | string | Mandatory | none — must be provided | Name of the robot; used as the robot-driver topic prefix |
| thread_sampling_time_sec | double | Optional | 0.002 | Sampling period of the control-loop thread |
| Property | Value |
|---|---|
| Executable | sas_object_server_gazebo_node |
| ROS node name | sas_object_server_gazebo_node |
| Description | Synchronizes the poses of the configured world entities with ROS: sends poses to the Gazebo set_pose service and publishes them on the get_pose topic. |
| Parameter | Type | Mandatory / Optional | Default | Purpose |
|---|---|---|---|---|
| set_pose_service_name | string | Mandatory | none — must be provided | Gazebo set_pose service name |
| get_pose_topic_name | string | Mandatory | none — must be provided | Gazebo absolute-pose info topic name |
| entity_names | array of strings | Mandatory | none — must be provided | World entities whose poses are synchronized |
| thread_sampling_time_sec | double | Optional | 0.01 | Sampling period of the synchronization loop |
| Property | Value |
|---|---|
| Executable | sas_simulator_server_gazebo_node |
| ROS node name | sas_simulator_server_gazebo_node |
| Description | Binds Gazebo world control services (start/stop/step simulation) to ROS. |
| Parameter | Type | Mandatory / Optional | Default | Purpose |
|---|---|---|---|---|
| service_name | string | Mandatory | none — must be provided | Gazebo world control service name (e.g. /world/<world>/control) |
| thread_sampling_time_sec | double | Optional | 0.01 | Sampling period of the control loop |
| autostart | bool | Optional | true | Start the simulation on node startup |
How mandatory/optional is determined in code:
Launch arguments (simulator_server_launch.py): name and config_file. The simulation is autostarted by default (autostart: true in the configuration file and in the node's in-code default); to disable it, pass a configuration file that sets autostart: false (e.g. ros2 launch sas_robot_driver_gazebo simulator_server_launch.py config_file:=/path/to/no_autostart.yaml).