bay

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 building bond_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 with amazon_warehouse.model or amazon_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_Gokhale


Demonstrations

Amazon warehouse with single robot Amazon warehouse with single robot

Amazon warehouse with multi robots Amazon warehouse with multi robots

Flying robots (No, not intentionally)
tesla-roadster-1
tesla-roadster-2


Topics Read/Watched and Understood

Topics Skimmed

Topics Planned to be Read/Watched