Use bringup.launch.py
from rosbot_xl_bringup
to start all base functionalities for ROSbot XL. It consists of the following parts:
-
scan_to_scan_filter_chain
fromlaser_filters
, it subscribes to/scan
topic and removes all points that are within the robot's footprint (defined by configlaser_filter.yaml
inrosbot_xl_bringup
package). Filtered laser scan is then published on/scan_filtered
topicSubscribes
/scan
(sensor_msgs/LaserScan)
Publishes
/scan_filtered
(sensor_msgs/LaserScan)
-
ekf_node
fromrobot_localization
, it is used to fuse wheel odometry and IMU data. Parameters are defined inekf.yaml
inrosbot_xl_bringup/config
. It subscribes to/rosbot_xl_base_controller/odom
and/imu_broadcaster/imu
published by ros2 controllers and publishes fused odometry on/odometry/filtered
topicSubscribes
/rosbot_xl_base_controller/odom
(nav_msgs/Odometry)/imu_broadcaster/imu
(sensor_msgs/Imu)
Publishes
/tf
(tf2_msgs/TFMessage) -base_link
->odom
transform/odometry/filtered
(nav_msgs/Odometry)
-
controller.launch.py
fromrosbot_xl_controller
, it loads robot model defined inrosbot_xl_description
as well as ros2 control rosbot_hardware_interfaces. It also starts controllers:joint_state_broadcaster
rosbot_xl_base_controller
- depending on the value ofmecanum
argument it can beDiffDriveController
orMecanumDriveController
imu_broadcaster
Subscribes
/cmd_vel
(geometry_msgs/Twist)/_motors_responses
(sensor_msgs/JointState)/_imu/data_raw
(sensor_msgs/Imu)
Publishes
/tf
(tf2_msgs/TFMessage)/tf_static
(tf2_msgs/TFMessage)/_motors_cmd
(std_msgs/Float32MultiArray)/rosbot_xl_base_controller/odom
(nav_msgs/Odometry)/imu_broadcaster/imu
(sensor_msgs/Imu)
Use micro_ros_agent
to communicate with Digital Board, it provides the following interface:
Subscribes
/_motors_cmd
(std_msgs/Float32MultiArray)
Publishes
/_motors_responses
(sensor_msgs/JointState)/_imu/data_raw
(sensor_msgs/Imu)/battery_state
(sensor_msgs/BatteryState)