SiChiTong / lscm_deliverybot

full package for deliverybot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lscm_deliverybot

Is ad differential drive robot based on the turtlebot to do indoor delivery tasks.

install

cd lscm_deliverybot
sudo apt install python3-vcstool
vcs import .. < my.repos
roscd # cd to root of ros workspace
rosdep update && rosdep install -i --from-path src --rosdistro $ROS_DISTRO -y
cd src/ros_zlac_8015_driver
git submodule init
git submodule update

install zlac motor driver

pip3 install pymodbus
pip3 install serial_asyncio
sudo python3 setup.py install
sudo usermod -a -G dialout $USER

pip install customtkinter
pip3 install transforms3d

πŸ’» deliverybot Simulation

Mapping

ros2 launch turtlebot3_gazebo turtlebot3_house.launch.py  

simulation

ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=true

tel

save the map

ros2 run nav2_map_server map_saver_cli -f ~/map

save cartographer pbstream

roscd turtlebot3_cartographer
. shell/save_map.sh map_name

Navigation

run in workspace

ros2 launch turtlebot3_navigation2 navigation2.launch.py map:=src/lscm_deliverybot/turtlebot3_navigation2/map/house.yaml use_sim_time:=true

or using cartographer

ros2 launch turtlebot3_navigation2 carto_nav.launch.py use_sim_time:=true

navigation
sim_graph

Demos

taking lift

ros2 launch demos gui_door_sim.launch.py

gui

MQTT publisher

docker run --rm --network host --name mosquitto eclipse-mosquitto

to publish the messages on localhost, change the IP in deliverybot_mqtt/config/params.ros2.yaml to localhost

mqtt_location:
    ros__parameters:
        broker:
        host: localhost
        port: 1883
        bridge:
        ros2mqtt:
            ros_topic: /robots/id_1/location
            mqtt_topic: robots/id_1/location
            primitive: true
ros2 launch demos gui_med_sim.launch.py 

πŸ€– Real deliverybot

Mapping

πŸ€– Robot

ros2 launch deliverybot_bringup bringup.launch.py

ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=false

ros2 run rviz2 rviz2 -d src/lscm_deliverybot/turtlebot3_cartographer/rviz/tb3_cartographer.rviz

πŸ’» Laptop

tel

πŸ€–/πŸ’» save the map

ros2 run nav2_map_server map_saver_cli -f ~/map

Navigation

πŸ€– Robot

ros2 launch deliverybot_bringup bringup.launch.py

ros2 launch turtlebot3_navigation2 navigation2.launch.py map:=src/lscm_deliverybot/turtlebot3_navigation2/map/med.yaml

πŸ’» Laptop

ros2 run rviz2 rviz2 -d src/lscm_deliverybot/turtlebot3_navigation2/rviz/nav.rviz

navigation
real_graph

πŸ€– Demos

launch the bringup manually first. For some timing issue it cant be put in the same launch file yet.

ros2 launch deliverybot_bringup bringup.launch.py

ros2 launch demos gui_door.launch.py

or

ros2 launch demos gui_med.launch.py

πŸ€– start MQTT client

ros2 launch deliverybot_mqtt example_string_launch.py

Services

disable the Motors
ros2 service call /disable_motor std_srvs/srv/Trigger
enable the Motors
ros2 service call /enable_motor std_srvs/srv/Trigger

About

full package for deliverybot


Languages

Language:Python 80.2%Language:C++ 9.3%Language:CMake 7.0%Language:Lua 2.8%Language:Shell 0.7%