Week 1
Issues Created
- #4:
colcon build
fails in Custom Robots setup potentially due to ROS2 Distro version mismatch
Packages explored
- Custom Robot’s amazon_robot - Commands and Error described in Issue #4
- Referring Shreyas’ Week 9 Blog (Finding the way), executing all these commands in the same terminal inside my ROS2 Foxy Docker environment -
cd ~/colcon_ws/src/ git clone -b foxy-devel https://github.com/ros-planning/navigation2.git cd navigation2 source /opt/ros/foxy/setup.sh colcon build . ./install/setup.sh export TURTLEBOT3_MODEL=waffle
cd ~/colcon_ws/src/ git clone -b foxy-devel https://github.com/JdeRobot/CustomRobots.git cd CustomRobots git submodule update --init --recursive cd amazon_robot colcon build . ./install/setup.sh
cd ~/shared-directory/ git clone https://github.com/TheRoboticsClub/colab-gsoc2020-Shreyas_Gokhale.git cd colab-gsoc2020-Shreyas_Gokhale/exercises/ros2/amazon_warehouse/launch ros2 launch amazon_warehouse_world.py
Dealing with Errors in above Packages
Errors in CustomRobots/amazon_robot (solved):
- amazon_robot_controller fails - unable to find
bondcpp
(solved) - amazon_robot_rviz_plugins fails - error: static assertion failed: Wrong number of arguments for pointer-to-member (solved)
- I have ignored these 2 packages for the time being using
COLCON_IGNORE
.
Progress with these errors:
- Fixed
bondcpp
problem by cloning and buildingbond_core
from source. Steps mentioned in this ROS Answer - amazon_robot_controller compiles successfully, though I suspect simply removing bondcpp as a dependency won’t make any difference.
- amazon_robot_rviz_plugins error stands. Apparently incorrect of arguments given to
std::bind
. Understanding this method and the error from this StackOverflow answer - Commented all lines of code containing
std::bind
in nav2_panel.cpp of amazon_robot_rviz_plugins package (Functions onStartup, onShutdown, onCancel, onPause, onResume). Package compiled after that. - Solved it! Added
std::chrono::nanoseconds(-1)
to the arguments of std::bind. It’s the value of default argument in lifecycle_manager_client.cpp of nav2_lifecycle_manager package. Not sure why “_Arity” still had a problem with it - Passing Comment: Suggested on Stack Overflow that lambda functions have replaced
std::bind
. I might consider this.
Error: File or path does not exist (solved)
- Fix: In
~/shared-directory/colab-gsoc2020-Shreyas_Gokhale/exercises/ros2/amazon_warehouse/launch/amazon_warehouse_world.py
- Line 153: Replace
amazon_robot.model
withamazon_warehouse.model
oramazon_warehouse_with_robot.model
Error: Fixed frame [map] does not exist
- No fix yet
- Update: This error gets solved in the future in #94
Major update (Expand)
I turn my attention solely to the foxy-devel branch of CustomRobots. No more attention to the ROS2 workspaces inside colab-gsoc2020-Shreyas_GokhaleDemonstrations
Amazon warehouse with single robot
Amazon warehouse with multi robots
Flying robots (No, not intentionally)
Topics Read/Watched and Understood
- Sebastian Castro’s Introduction to Behavior Trees
- Shreyas GSoC blogs: Beginning till Week 9 (Finding the way)
- Beginner’s Intro to ROS vs ROS2 by generationrobots
- Webots ROS2 introducing the SLAM Toolbox
- Global Navigation using TeleTaxi Theory
Topics Skimmed
Topics Planned to be Read/Watched
- Shreyas GSoC blogs: Week 10 (2x!) till Final week (The Finish Line)
- ROSCon 2019 Macau Video: On Use of SLAM Toolbox
- Weekly Robotics Meetup #9 Video - Coffee with Nav2
- JdeRobot paper
- ROS2 Design: ROS on DDS, A universal build tool, Changes between ROS 1 and ROS 2, Actions
- Tutorials
- Navigation2: The Marathon 2: A Navigation System (Paper), Nav2 Docs
- Advanced Motion Planning Video: FMT*, Informed RRT*, BIT*, and RABIT* | An OMPL Tutorial with Examples
- OMPL for Motion Planning Video (Lydia Kavraki)