autonomous-rc-car
An Autonomous RC car based on ROS packages and using visual-slam based navigation on Jetson Nano board + Arduino Uno + (D435 + T265) cameras
1. Prerequisites
1.1 Ubuntu and ROS
Ubuntu 64-bit 18.04 on NVidia Jetson Nano board. ROS Melodic. ROS Installation
1.2. librealsense2
Follow librealsense Installation.
1.3. RealSense ROS Wrapper
Follow ROS-RealSense Installation.
1.3. Arduino IDE
Follow Arduino Installation.
1.4. Install rosserial for ROS-Arduino communication
Follow Arduino Installation
1.5. Install RTAB-Map ROS
sudo apt install ros-melodic-rtabmap ros-melodic-rtabmap-ros
1.6. Install Robot-Localization
sudo apt install ros-melodic-robot-localization
1.7. Install ROS Nav Stack
sudo apt install ros-melodic-navigation ros-melodic-map-server ros-melodic-move-base
2. Build & Install
Clone the repository and catkin_make:
cd ~/catkin_ws/src
rm -rf *
git clone https://github.com/mhaboali/autonomous-rc-car.git
cd ../
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
source ~/catkin_ws/devel/setup.bash
3. Usage Instructions
Start both T265 and D435i cameras nodes
roslaunch realsense2_camera cameras.launch
This will stream all cameras sensors and publish on the appropriate ROS topics.
Set Camera Controls Using Dynamic Reconfigure Params
The following command allow to change camera control values using [http://wiki.ros.org/rqt_reconfigure].
rosrun rqt_reconfigure rqt_reconfigure
About Frame ID
The wrapper publishes static transformations(TFs). The Frame Ids are divided into 3 groups:
- ROS convention frames: follow the format of <tf_prefix>_<_stream>"_frame" for example: camera_depth_frame, camera_infra1_frame, etc.
- Original frame coordinate system: with the suffix of <_optical_frame>. For example: camera_infra1_optical_frame. Check the device documentation for specific coordinate system for each stream.
- base_link: For example: camera_link. A reference frame for the device. In D400 series, it is the depth frame. In T265, the pose frame.