This repository is a ROS package developed for mobile robot equipped with Huawei Atlas 200DK. The software is designed for the desktop navigation tasks with robots which only rely on raspberry pi camera. Besides that, the software also provides the gampping and navigation function with cheap distance sensor(e.g. LiDAR).
This software is build on the Robotic Operating System(ROS) and Huawei Mind Studio. Please check it installed first.
Use Arduino IDE to upload the code to Arduino DUE board. The main file is Arduino/mobileBase_IIC/mobileBase_IIC.ino
, and choose Arduino Due(Programming Port) to write.
This application uses Mind Studio and DDK tools to build. Run ./app/deploy.sh $remote_host_ip $download_mode
to prepare the application environment, including compiling and deploying the ascenddk public library, and configuring EZDVPP library.
$remote_host_ip
is the IP address of Atlas 200DK.$download_mode
(internet/local) is the method to download ezdvpp library. Please choose internet for the first time.
The offline models need to be uploaded to Atlas 200DK manually. Use scp tool to convert the model file from ubuntu server MyModel/OfflineModel/*
to Atlas200DK ~/HIAI_DATANDMODELSET/ascend_workspace
.
In order to deploy the system to Atlas 200DK, clone the latest version from this repository into your catkin workspace of Atlas 200DK and compile the package using ROS. Please use ssh connect to Atlas 200DK and input the following:
mkdir ~/catkin_atlas_ws && cd ~/catkin_atlas_ws
git clone https://github.com/
catkin_make
The desktop navigation application consist of two parts. In order to start navigation, detection and recognition application needs to start first.
- Connect to Atlas 200DK with ssh and input
~/HIAI_PROJECTS/ascend_workspace/collision/out/collision
to start the application. - Start a new ssh connection to Atlas 200DK. Now the detection and recognition neural network is running in the background. Run the ROS package to make the robot navigating on the desktop.
source ~/catkin_atlas_ws/devel/setup.bash
# Bring up the robot
roslaunch robot_bringup robot_bringup.launch
# Startup the Application
rosrun robot_neural_netowork neural_network.py
For the gmapping application, the map should be established first with the ROS package gmapping. Start a ssh connection to Atlas 200DK and input the following:
# Choose the corresponding lidar
roslaunch robot_navigation gmapping_ydlidar_x2l.launch
And then start a new ssh connection to Atlas 200DK and input rosrun teleop_twist_keyboard teleop_twist_keyboard.py
to control the robot to create a map of given regions. The map will be saved at ~/catkin_atlas_ws/src/robot_navigation/maps
.
After establishing the map, run the amcl to make the robot navigating in the given map by enteringroslaunch robot_amcl robot_amcl.launch
.
Please visit the project page.