What are the steps to implement a real robot in ROS2
I am building a 4 wheels robot with a camera, an IMU and a Lidar sensor. I've got only URDF and launch files working and correctly implemented for Rviz and Gazebo.
The URDF has the following plugins:
- libgazebo_ros_skid_steer_drive (topic
/cmd_vel
) - libgazebo_ros_ray_sensor (topic
/scan
) - libgazebo_ros_camera (topic
/camera/image_raw
and/camera/points
) - libgazebo_ros_imu_sensor (topic
/imu
)
On the topic side I've got others and those main ones /tf
/tf_static
and /joint_states
I am about to wire all the hardware in order to complete the real robot. I need some help to validate the steps needed to implement the real robot.
- Install ros_control
- Create a controller package
- Create hardware interface for the 4 wheels. I guess I need to publish position and velocity not sure where or maybe create a driver interface to subscribe to data in order to move the wheels
- Create hardware interface for the camera and publish the data on image_raw and point
- Create hardware interface for the lidar and publish data to /scan (not sure if pointcloud is needed)
- Create hardware interface for the imu and publish the data to /imu
- Optionally configure nav2 not sure how (help appreciated)
- Create an action for specific task as follow a line using camera (any sample code will be useful)
Any help or resource link will be appreciated. Thanks