Tech Stack: ROS, C++
The goal of this project was to design a mobile robot system that could generate a 3D map of an environment needed for autonomous movement.
Developed C++ software that run on a Raspberry Pi, Arduino UNO, Ubuntu Desktop and utilized an ASUS Xtion Pro RGB-D sensor to generate the 3D maps needed for movement.
Successfully developed a prototype that met the goals of the project.
$ git clone https://github.com/senorMk/ROS-3DMapping.git
LICENSE
Arduino/
Raspberry Pi/
Laptop/
...
TODO
Assuming that our ROS Master is running on a laptop with IP: 192.168.1.166 and port 11311. The Raspberry Pi has IP: 192.168.1.2. We're using tmux for persistent sessions wherever possible (SSH over WiFi is extremely unreliable).
$ export ROS_MASTER_URI=http://192.168.1.166:11311
$ export ROS_IP=192.168.1.166
$ roscore
$ cd ~/Dev/Projects/Controller_Laptop
$ catkin build
$ export ROS_MASTER_URI=http://192.168.1.166:11311
$ export ROS_IP=192.168.1.166
$ rosrun controller_laptop mapping_node
$ tmux new -s pi_controller
$ cd ~/Projects/Controller_PPi/src
$ catkin build
$ export ROS_MASTER_URI=http://192.168.1.166:11311
$ export ROS_IP=192.168.1.2
$ rosrun controller_rpi node
$ tmux new -s serial_server
$ export ROS_MASTER_URI=http://192.168.1.166:11311
$ export ROS_IP=192.168.1.2
$ rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0
$ tmux new -s driver_1
$ export ROS_MASTER_URI=http://192.168.1.166:11311
$ export ROS_IP=192.168.1.2
$ roslaunch openni_launch openni.launch depth_registration:=true data_skip:=5
Note: To delete the old map on start add the flag: --delete_db_on_start.
Note: To adjust the map max size set the flag: --OdomF2M/MaxSize 1000.
$ tmux new -s driver_2
$ export ROS_MASTER_URI=http://192.168.1.166:11311
$ export ROS_IP=192.168.1.2
$ roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start --Rtabmap/DetectionRate 17 --Kp/MaxFeatures 1000 --Vis/MaxFeatures 1000 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --Odom/ImageDecimation 2 --OdomF2M/MaxSize 1000" rtabmapviz:=false
$ export ROS_MASTER_URI=http://192.168.1.166:11311
$ export ROS_IP=192.168.1.166
$ ROS_NAMESPACE=rtabmap rosrun rtabmap_ros rtabmapviz _subscribe_odom_info:=false _frame_id:=camera_link