BEVBot codebase is for the complete control of the robot with its embedded hardware including
- Lidar (Livox MID360)
- Camera (OAK-D Lite)
- IMU (MPU 6050)
Whole code is based on the Nvidia Jetson TX2 and ROS2 humble platform. The ROS2 workspace is created in such a way that you can remove any folder from src and run each hardware independently if needed.
##Running the project: It will be quite hard to get everything running first time. The breakdown of testing each component is mentioned below and at the end about running everything together.
The code for lidar is based on the Livox MID 360. Dependencies:
- (Livox-SDK)[https://github.com/Livox-SDK/livox_ros_driver2]
As an initial setup, follow the instructions mentioned in the Livox github.
Navigate to the <BEVBot folder>/bevbot_ws Test your code by running the following launch file:
ros2 launch launch/lidar_plc2_launch.py
To test the code, on a new terminal, run
ros2 topic list
You should be able to see two topics /livox/imu and /livox/lidar
Camera is based on the OAK-D lite cameras. Dependencies:
- (oakd-ros2-multicam)[https://github.com/alphazeus/oakd_ros2_mutlicam]
Navigate to this library and follow the instructions in the readme. Once the dependencies are installed, navigate to <bevbot folder>/bevbot_ws/src/cam_pkg/cam_pkg/. Then run the following command
python3 depthai_ros2_multicam_multithread.py
In a new terminal, enter the command
ros2 topic list
you should be able to see the list of camera topics in the output.
IMU node is based on the MPU6050 hardware. Dependencies:
- Python: > 3.9
- mpu6050
Make sure to update the repositories before every step.
sudo apt-get update
Running the node : Make sure to install the dependecies:
pip install mpu6050
If you have a specific version of python running, like python3.10, use
python3.10 -m pip install mpu6050
Navigate to <bevbot_folder>/bevbot_ws and run
colcon build
Then source the setup file for ros2
source install/setup.sh
Finally run the node
ros2 run imu_pkg imu_angle
This should start the ros2 topic publishing the IMU data on /imu_angle