GithubHelp home page GithubHelp logo

b-it-bots / mas_industrial_robotics Goto Github PK

View Code? Open in Web Editor NEW
25.0 5.0 53.0 233.09 MB

MAS Industrial Robotics

Home Page: https://b-it-bots.readthedocs.io

CMake 3.45% Python 65.85% C++ 26.96% Makefile 0.39% C 0.25% Shell 0.56% Dockerfile 0.12% PDDL 2.41%

mas_industrial_robotics's Introduction

This repository contains most of the code used by our team on the youBot for the RoboCup@Work competition. In the competition, the robot should transport industrial objects such as metal profiles, nuts and bolts, tools, etc. between workstations based on a given task order. This requires the robot to autonomously navigate in a known environment with previously unseen obstacles, recognize and grasp small and textureless objects, grasp objects from a rotating table, insert objects precisely into cavities and plan the most efficient sequence of actions to complete the task.

Several other repositories are used; the full list can be found in repository.rosinstall. The main ones are:

  • mas_common_robotics: robot-independent code that is sometimes shared with our other robots
  • mas_navigation: robot-independent navigation components such as the force-field recovery behaviour for move base, direct base controller, etc.
  • mir_perception_models: trained neural network models for perception
  • technical_drawings: CAD models for various parts used on the youBot.
  • gripper_controller: code for the OpenRB-150 board to control the gripper using two Dynamixel motors.

Install Ubuntu

The repository and its related components have been tested under the following Ubuntu distributions:

  • ROS Kinetic: Ubuntu 16.04
  • ROS Melodic: Ubuntu 18.04
  • ROS Noetic: Ubuntu 20.04

If you do not have a Ubuntu distribution on your computer you can download it here

 http://www.ubuntu.com/download

Git - Version Control

Install Git Software

Install the Git core components and some additional GUI's for the version control:

 sudo apt-get install git-core gitg gitk

Set Up Git

Now it's time to configure your settings. To do this you need to open a new Terminal. First you need to tell git your name, so that it can properly label the commits you make:

 git config --global user.name "Your Name Here"

Git also saves your email address into the commits you make.

 git config --global user.email "[email protected]"

GIT Tutorial

If you have never worked with git before, we recommend to go through the following basic git tutorial:

 http://excess.org/article/2008/07/ogre-git-tutorial/

Docker (Recommended, Optional)

Getting started with docker

The latest versions of docker-engine and docker-compose have to be installed before getting started. Please have a look at docker's official website for more insights into the working and usage of docker images and docker containers.

The docker images available here provide a proper development environment -with ros pre-installed and without any missing dependencies- for the MAS industrial software. It is highly recommended that you use docker containers to build and run your nodes rather than directly installing ROS and working with the MAS industrial software on your PC.

First, you need to pull the corresponding image you want to use:

#kinetic image
docker pull  ghcr.io/b-it-bots/mas_industrial_robotics/industrial-kinetic:latest

#melodic image
docker pull ghcr.io/b-it-bots/mas_industrial_robotics/industrial-melodic:latest

The main branch of the ros distro should always reflect latest tag in the github registry, for example kinetic branch reflects mas_industrial_robotics/industrial-kinetic:latest. The ros distro devel branch always reflects devel tag, for example kinetic branch reflects mas_industrial_robotics/industrial-kinetic:devel

Start container with docker-compose:

docker-compose -f start-container.yaml up <industrial_kinetic|industrial_melodic>

Log in to the container:

docker exec -it mas_industrial_robotics_industrial_kinetic_1 /bin/bash

More detailed tutorials on how to use MAS Industrial Robotics softwares with docker are available here

ROS - Robot Operating System

Install ROS

The repository has been tested successfully with the following ROS distributions. Use the link behind a ROS distribution to get to the particular ROS installation instructions. Alternatively, you can skip this step, as ROS Melodic is automatically installed by the setup.sh script described in this section.

NOTE: Do not forget to update your .bashrc!

ROS Tutorials

If you have never worked with ROS before, we recommend to go through the beginner tutorials provided by ROS:

 http://wiki.ros.org/ROS/Tutorials

In order to understand at least the different core components of ROS, you have to start from tutorial 1 ("Installing and Configuring Your ROS Environment") till tutorial 7 ("Understanding ROS Services and Parameters").

Clone and compile the MAS industrial robotics software

First of all you have to clone the repository.

mkdir ~/temp
cd ~/temp
git clone --branch noetic [email protected]:b-it-bots/mas_industrial_robotics.git

Navigate into the cloned repository and run setup.sh file.

 ./setup.sh --ros_install <full|base> --ros_distro <melodic|kinetic|noetic> --ws_dir <$HOME/catkin_ws> --docker 0

Example:

 ./setup.sh --ros_install full --ros_distro noetic --ws_dir $HOME/catkin_ws --docker 0

Note: In case you are using the docker images, please pay attention to the mounted directory path in the container. All the above paths should be relative to your mounted folder inside the docker container and not your local file system.

This script does the following,

  • installs ROS, if not previously installed, provided the optional argument full is given. In case, you dont want to install ROS then replace full by none.
  • creates a catkin workspace folder in the directory specified in the argument or by default places it in home directory, i.e. ~/catkin_ws (if it does not exist)
  • clones the mas_industiral_robotics repository along with other repositories mentioned in repository.rosinstall file to <your folder>/catkin_ws/src and installs the necessary ros dependencies
  • initiates a catkin build in the catkin workspace

Note: A catkin_ws built inside docker container can be built only within docker containers having the same mounted directory in the container. Do not try to switch the catkin_ws build between docker containers and local PC, as it will produce errors due to conflicting paths.

Add the following to your bashrc and source your bashrc, so that you need not execute ./setup.sh script each time you open your terminal

 source <your folder>/catkin_ws/devel/setup.bash

If no errors appear everything is ready to use. Great job!

Finally delete the initially cloned mas_industrial_robotics in ~/temp, as all necessary repositories and dependencies are successfully cloned and installed in your catkin workspace

 rm -rf ~/temp/mas_industrial_robotics

Setting the Environment Variables

ROBOT variable

With the ROBOT variable you can choose which hardware configuration should be loaded when starting the robot. The following line will add the variable to your .bashrc:

 echo "export ROBOT=youbot-brsu-4" >> ~/.bashrc
 source ~/.bashrc

ROBOT_ENV Variable

The ROBOT_ENV variable can be used to switch between different environments. The following line will add the variable to your .bashrc:

Real robot

 echo "export ROBOT_ENV=brsu-c025" >> ~/.bashrc
 source ~/.bashrc

Simulation

 echo "export ROBOT_ENV=brsu-c025-sim" >> ~/.bashrc
 source ~/.bashrc

Bring up the robot and it's basic components

In Simulation

 roslaunch mir_bringup_sim robot.launch

At the Real Robot

 roslaunch mir_bringup robot.launch

Test the base

 roslaunch mir_teleop teleop_keyboard.launch

Visualize the robot state and sensor data

 rosrun rviz rviz

Build a map for base navigation

 roslaunch mir_2dslam 2dslam.launch

Use autonomous navigation

Omni-directional navigation

 roslaunch mir_2dnav 2dnav.launch nav_mode:=dwa

Click on the menu bar "File -> Open Config", navigate to "~/indigo/src/mas_industrial_robotics" and select the "youbot.rviz" file.

Note on Contributions:

Pre-commit hooks has been added to this repository. Please note that you will not be able to locally commit your changes to git until all the checks in the .pre-commit-config.yaml pass. Although, cpp and python code formatters are present in .pre-commit-config.yaml, some serious violations of the standard coding guidelines will not be automatically fixed while running the pre-commit hooks. These errors will be displayed while running git commit and have to be manually fixed. Users will not be able to commit their code, until these errors are fixed. Alternatively, one could also verify if the pre-commit hooks pass before actually committing the code to git. To do so please run the following command after making necessary changes to your code.

pre-commit run --all-files

mas_industrial_robotics's People

Contributors

abakisita avatar argenos avatar ashokvms avatar brsu-student avatar deebuls avatar dharminb avatar djolemne avatar ekanshh avatar elnandes avatar frederikhegger avatar gokulkchenchani avatar iswariyam avatar jsanch2s avatar kvnptl avatar mannavavivek avatar mhwasil avatar moriarty avatar ngiftsun avatar oscar-lima avatar ravisankarselvaraju avatar shehzi001 avatar shubham2s avatar shweta112 avatar sthoduka avatar sushant-chavan avatar svenschneider avatar taketwo avatar tharunsethuraman avatar vamsikalagaturu avatar vincentsch4rf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mas_industrial_robotics's Issues

[DBC] faster align with workspace

We need a robust, safe, fast align base using just laser scanner.

Requirements:

  1. Needs to be at the lower level. Can take some ideas from LuhBots code (https://github.com/LUHbots/luh_youbot_os/blob/master/luh_youbot_controller/src/module_base_controller/base_controller.cpp)

Additional Info

Just using laser scanner will be not sufficient. We have to use image based alignment. The main idea to align is to have better view of the workspace. So using image to align should be he ultimate goal.

[pick_from_drawer] update planning domain

To incorporate picking from a drawer, some more actions need to be added to the task planning domain.

I think this would be at least open and close, but probably also a new perceive action which has a precondition that the drawer is open.

The actions to pick from a drawer might look like:

  1. perceive
  2. open
  3. pick
  4. stage
  5. close

We might also want to add actions for putting objects back in the drawer.

The docs should have everything you need to get task planning running independent of the robot.
cc: @DharminB

[PyLinting] Fix pylint errors in python files (callibration and manipulation files)

Hi,
From https://gist.github.com/iswariyam/9e04916f92124e1ce50b56b377b60a77. Issues is part of #148
I will be taking care of the following files for linting purposes:

'mir_calibration/mir_kinect_calibration',
'mir_manipulation/mir_arm_relative_motion_control',
'mir_manipulation/mir_grasp_monitors',
'mir_manipulation/mir_gripper_controller',
'mir_manipulation/mir_moveit_scene',
'mir_manipulation/mir_pregrasp_planning',

Simulation not working

Changes made in Milan broke the simulation. I narrowed down the problem to commit #8 . Please revert changes.

permission denied while trying to run container.

hello,

I was trying to install ROS using the docker image. I installed docker and docker-compose (latest versions) from the official docker website then followed the steps given here and changed the host file system path and driver version as per my system.

I had cloned the docker and mas_industrial_robotics repositories in /home/elanton/Robocup directory and then used in terminal (current directory: /home/elanton/Robocup/docker) used the following command sudo docker-compose -f industrial/start-container.yml up ros_kinetic_container and then opened a new terminal and used the following command docker exec -it ros_kinetic_container_1 bash but i get the following error: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/ros_kinetic_container_1/json: dial unix /var/run/docker.sock: connect: permission denied
docker_error
docker_run

Not able to build the repository

I am trying the build the repository and ending up with errors all the time
please find error log below

Errors << mcr_algorithms:make /home/santosh/kinetic/logs/mcr_algorithms/build.make.000.log
In file included from /home/santosh/kinetic/src/mas_common_robotics/mcr_common/mcr_algorithms/common/src/machine_learning/svm_trainer.cpp:1:0:
/home/santosh/kinetic/src/mas_common_robotics/mcr_common/mcr_algorithms/common/include/mcr_algorithms/machine_learning/svm_trainer.h:4:24: fatal error: libsvm/svm.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/mcr_machine_learning.dir/common/src/machine_learning/svm_trainer.cpp.o] Error 1
make[1]: *** [CMakeFiles/mcr_machine_learning.dir/all] Error 2
make: *** [all] Error 2
cd /home/santosh/kinetic/build/mcr_algorithms; catkin build --get-env mcr_algorithms | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd -
...............................................................................
Failed << mcr_algorithms:make [ Exited with code 2 ]
Failed <<< mcr_algorithms [ 6.5 seconds ]
Abandoned <<< mcr_base_collision_checker [ Unrelated job failed ]
Abandoned <<< mcr_cavity_detector [ Unrelated job failed ]
Abandoned <<< mcr_collision_velocity_filter [ Unrelated job failed ]
Abandoned <<< mcr_common_msgs [ Unrelated job failed ]
Abandoned <<< mcr_cost_generators [ Unrelated job failed ]
Abandoned <<< mcr_default_env_config [ Unrelated job failed ]
Abandoned <<< mcr_description [ Unrelated job failed ]
Abandoned <<< mcr_door_status [ Unrelated job failed ]
Abandoned <<< mcr_dynamic_reconfigure_client [ Unrelated job failed ]
Abandoned <<< mcr_event_gui [ Unrelated job failed ]
Abandoned <<< mcr_exploration [ Unrelated job failed ]
Abandoned <<< mcr_fake_camera [ Unrelated job failed ]
Abandoned <<< mcr_gazebo_objects [ Unrelated job failed ]
Abandoned <<< mcr_gazebo_worlds [ Unrelated job failed ]
Abandoned <<< mcr_geometry_transformer [ Unrelated job failed ]
Abandoned <<< mcr_global_planner [ Unrelated job failed ]
Abandoned <<< mcr_image_filter [ Unrelated job failed ]
Abandoned <<< mcr_interpolation_planner_moveit [ Unrelated job failed ]
Abandoned <<< mcr_kinect_led [ Unrelated job failed ]
Abandoned <<< mcr_laptop_battery_monitor [ Unrelated job failed ]
Abandoned <<< mcr_line_contour_detector [ Unrelated job failed ]
Abandoned <<< mcr_manipulation_pose_selector [ Unrelated job failed ]
Abandoned <<< mcr_manipulation_utils [ Unrelated job failed ]
Abandoned <<< mcr_monitoring_msgs [ Unrelated job failed ]
Abandoned <<< mcr_move_base [ Unrelated job failed ]
Abandoned <<< mcr_moveit_client [ Unrelated job failed ]
Abandoned <<< mcr_moveit_commander_gui [ Unrelated job failed ]
Abandoned <<< mcr_multi_joint_forward_controller [ Unrelated job failed ]
Abandoned <<< mcr_multimodal_object_identification [ Unrelated job failed ]
Abandoned <<< mcr_navigation_layers [ Unrelated job failed ]
Abandoned <<< mcr_navigation_tools [ Unrelated job failed ]
Abandoned <<< mcr_node_diagnostic [ Unrelated job failed ]
Abandoned <<< mcr_node_monitor [ Unrelated job failed ]
Abandoned <<< mcr_perception_msgs [ Unrelated job failed ]
Abandoned <<< mcr_perception_selectors [ Unrelated job failed ]
Abandoned <<< mcr_pose_estimation [ Unrelated job failed ]
Abandoned <<< mcr_pose_selector [ Unrelated job failed ]
Abandoned <<< mcr_projected_fov [ Unrelated job failed ]
Abandoned <<< mcr_ptu46 [ Unrelated job failed ]
Abandoned <<< mcr_recovery_behaviors [ Unrelated job failed ]
Abandoned <<< mcr_region_growing [ Unrelated job failed ]
Abandoned <<< mcr_rosbag_recorder [ Unrelated job failed ]
Abandoned <<< mcr_semantic_robot_localizer [ Unrelated job failed ]
Abandoned <<< mcr_states [ Unrelated job failed ]
Abandoned <<< mcr_stdr_simulator [ Unrelated job failed ]
Abandoned <<< mcr_task_planning_tools [ Unrelated job failed ]
Abandoned <<< mcr_teleop [ Unrelated job failed ]
Abandoned <<< mcr_topic_tools [ Unrelated job failed ]
Abandoned <<< mcr_trajectory_generation [ Unrelated job failed ]
Abandoned <<< mcr_trajectory_time_parameterizer [ Unrelated job failed ]
Abandoned <<< mcr_twist_limiter [ Unrelated job failed ]
Abandoned <<< mcr_virtual_laser_scanner [ Unrelated job failed ]
Abandoned <<< mcr_waypoint_trajectory_generation [ Unrelated job failed ]
Abandoned <<< mcr_wiggle_base [ Unrelated job failed ]
Abandoned <<< mercury_planner [ Unrelated job failed ]
Abandoned <<< mir_2dslam [ Unrelated job failed ]
Abandoned <<< mir_arm_relative_motion_control [ Unrelated job failed ]
Abandoned <<< mir_audio_receiver [ Unrelated job failed ]
Abandoned <<< mir_barrier_tape_detection [ Unrelated job failed ]
Abandoned <<< mir_calibration_data [ Unrelated job failed ]
Abandoned <<< mir_controller_msgs [ Unrelated job failed ]
Abandoned <<< mir_data_logger [ Unrelated job failed ]
Abandoned <<< mir_debug_leds [ Unrelated job failed ]
Abandoned <<< mir_default_robot_config [ Unrelated job failed ]
Abandoned <<< mir_grasp_object [ Unrelated job failed ]
Abandoned <<< mir_insert_object [ Unrelated job failed ]
Abandoned <<< mir_knowledge [ Unrelated job failed ]
Abandoned <<< mir_line_tracing [ Unrelated job failed ]
Abandoned <<< mir_look_at [ Unrelated job failed ]
Abandoned <<< mir_manipulation_msgs [ Unrelated job failed ]
Abandoned <<< mir_move_base_safe [ Unrelated job failed ]
Abandoned <<< mir_moveit_scene [ Unrelated job failed ]
Abandoned <<< mir_navigation_msgs [ Unrelated job failed ]
Abandoned <<< mir_object_tracking [ Unrelated job failed ]
Abandoned <<< mir_perceive_cavity [ Unrelated job failed ]
Abandoned <<< mir_perceive_location [ Unrelated job failed ]
Abandoned <<< mir_pick_from_rtt [ Unrelated job failed ]
Abandoned <<< mir_pick_object [ Unrelated job failed ]
Abandoned <<< mir_place_object [ Unrelated job failed ]
Abandoned <<< mir_place_pose_selector [ Unrelated job failed ]
Abandoned <<< mir_planning_bringup [ Unrelated job failed ]
Abandoned <<< mir_planning_core [ Unrelated job failed ]
Abandoned <<< mir_pose_selector [ Unrelated job failed ]
Abandoned <<< mir_realsense_camera_watchdog [ Unrelated job failed ]
Abandoned <<< mir_refbox_parser [ Unrelated job failed ]
Abandoned <<< mir_rotating_table_pick [ Unrelated job failed ]
Abandoned <<< mir_stage_object [ Unrelated job failed ]
Abandoned <<< mir_stdr_simulator [ Unrelated job failed ]
Abandoned <<< mir_task_planner [ Unrelated job failed ]
Abandoned <<< mir_trajectory_executor [ Unrelated job failed ]
Abandoned <<< mir_twist_mux [ Unrelated job failed ]
Abandoned <<< mir_unstage_object [ Unrelated job failed ]
Abandoned <<< mir_yb_action_msgs [ Unrelated job failed ]
Abandoned <<< mir_yb_actions [ Unrelated job failed ]
Abandoned <<< mir_youbot_audio_diagnostics [ Unrelated job failed ]
Abandoned <<< occupancy_grid_utils [ Unrelated job failed ]
Abandoned <<< parse_dispatch_msgs [ Unrelated job failed ]
Abandoned <<< plan_success_analyzer [ Unrelated job failed ]
Abandoned <<< rosplan_dispatch_msgs [ Unrelated job failed ]
Abandoned <<< rosplan_knowledge_msgs [ Unrelated job failed ]
Abandoned <<< rosplan_rqt [ Unrelated job failed ]
Abandoned <<< rqt_action_client [ Unrelated job failed ]
Abandoned <<< unmerged_packages_for_testing [ Unrelated job failed ]
Abandoned <<< youbot_arm_kinematics [ Unrelated job failed ]
Abandoned <<< youbot_battery_monitor [ Unrelated job failed ]
Abandoned <<< youbot_dashboard [ Unrelated job failed ]
Abandoned <<< youbot_description [ Unrelated job failed ]
Abandoned <<< youbot_diagnostic_aggregator [ Unrelated job failed ]
Abandoned <<< youbot_driver [ Unrelated job failed ]
Abandoned <<< youbot_gazebo_control [ Unrelated job failed ]
Abandoned <<< youbot_gazebo_worlds [ Unrelated job failed ]
Abandoned <<< dynamixel_controllers [ Unrelated job failed ]
Abandoned <<< dynamixel_tutorials [ Unrelated job failed ]
Abandoned <<< mcr_guarded_approach_pose [ Unrelated job failed ]
Abandoned <<< mcr_manipulation_measurers [ Unrelated job failed ]
Abandoned <<< mcr_manipulation_monitors [ Unrelated job failed ]
Abandoned <<< mcr_manipulation_msgs [ Unrelated job failed ]
Abandoned <<< mcr_common_converters [ Unrelated job failed ]
Abandoned <<< mcr_arm_cartesian_control [ Unrelated job failed ]
Abandoned <<< mcr_direct_base_controller [ Unrelated job failed ]
Abandoned <<< mcr_geometric_relation_monitors [ Unrelated job failed ]
Abandoned <<< mas_perception_libs [ Unrelated job failed ]
Abandoned <<< mcr_cavity_recognition [ Unrelated job failed ]
Abandoned <<< mcr_contour_matching [ Unrelated job failed ]
Abandoned <<< mcr_leg_detection [ Unrelated job failed ]
Abandoned <<< mcr_linear_regression [ Unrelated job failed ]
Abandoned <<< mcr_perception_states [ Unrelated job failed ]
Abandoned <<< mcr_perception_tools [ Unrelated job failed ]
Abandoned <<< mcr_pose_generation [ Unrelated job failed ]
Abandoned <<< mcr_pose_generator [ Unrelated job failed ]
Abandoned <<< mcr_scene_segmentation [ Unrelated job failed ]
Abandoned <<< mcr_nearest_object_detection [ Unrelated job failed ]
Abandoned <<< mcr_object_list_merger [ Unrelated job failed ]
Abandoned <<< mcr_object_recognition_bounding_box [ Unrelated job failed ]
Abandoned <<< mcr_object_recognition_mean_circle [ Unrelated job failed ]
Abandoned <<< mcr_people_tracking [ Unrelated job failed ]
Abandoned <<< mcr_task_planners [ Unrelated job failed ]
Abandoned <<< mcr_twist_controller [ Unrelated job failed ]
Abandoned <<< mcr_twist_demultiplexer [ Unrelated job failed ]
Abandoned <<< mcr_twist_synchronizer [ Unrelated job failed ]
Abandoned <<< mcr_knowledge [ Unrelated job failed ]
Abandoned <<< mir_2dnav [ Unrelated job failed ]
Abandoned <<< mir_arm_cartesian_control [ Unrelated job failed ]
Abandoned <<< mir_arm_motions [ Unrelated job failed ]
Abandoned <<< mir_basic_manipulation_test [ Unrelated job failed ]
Abandoned <<< mir_basic_navigation_test [ Unrelated job failed ]
Abandoned <<< mir_basic_transportation_test [ Unrelated job failed ]
Abandoned <<< mir_bringup [ Unrelated job failed ]
Abandoned <<< mir_bringup_sim [ Unrelated job failed ]
Abandoned <<< mir_conveyor_belt_test [ Unrelated job failed ]
Abandoned <<< mir_description [ Unrelated job failed ]
Abandoned <<< mir_direct_base_controller [ Unrelated job failed ]
Abandoned <<< mir_grasp_monitors [ Unrelated job failed ]
Abandoned <<< mir_gripper_controller [ Unrelated job failed ]
Abandoned <<< mir_hardware_config [ Unrelated job failed ]
Abandoned <<< mir_insert_in_container_functionality [ Unrelated job failed ]
Abandoned <<< mir_kinect_calibration [ Unrelated job failed ]
Abandoned <<< mir_manipulation_functionality [ Unrelated job failed ]
Abandoned <<< mir_manipulation_monitors [ Unrelated job failed ]
Abandoned <<< mir_moveit_client [ Unrelated job failed ]
Abandoned <<< mir_moveit_youbot [ Unrelated job failed ]
Abandoned <<< mir_moveit_youbot_brsu_1 [ Unrelated job failed ]
Abandoned <<< mir_moveit_youbot_brsu_2 [ Unrelated job failed ]
Abandoned <<< mir_moveit_youbot_brsu_3 [ Unrelated job failed ]
Abandoned <<< mir_moveit_youbot_brsu_4 [ Unrelated job failed ]
Abandoned <<< mir_moveit_youbot_brsu_5 [ Unrelated job failed ]
Abandoned <<< mir_base_placement [ Unrelated job failed ]
Abandoned <<< mir_object_perception_functionality [ Unrelated job failed ]
Abandoned <<< mir_object_recognition [ Unrelated job failed ]
Abandoned <<< mir_place_functionality [ Unrelated job failed ]
Abandoned <<< mir_precision_placement_test [ Unrelated job failed ]
Abandoned <<< mir_pregrasp_planning [ Unrelated job failed ]
Abandoned <<< mir_states [ Unrelated job failed ]
Abandoned <<< mir_teleop [ Unrelated job failed ]
Abandoned <<< mir_trajectory_time_parameterizer [ Unrelated job failed ]
Abandoned <<< mir_visual_servoing [ Unrelated job failed ]
Abandoned <<< mir_whole_body_control_functionality [ Unrelated job failed ]
Abandoned <<< mir_whole_body_motion_calculator [ Unrelated job failed ]
Abandoned <<< mir_knowledge_base_analyzer [ Unrelated job failed ]
Abandoned <<< rosplan_knowledge_base [ Unrelated job failed ]
Abandoned <<< rosplan_planning_system [ Unrelated job failed ]
Abandoned <<< mcr_pddl_problem_generator [ Unrelated job failed ]
Abandoned <<< mir_plan_loader_msgs [ Unrelated job failed ]
Abandoned <<< mir_plan_loader [ Unrelated job failed ]
Abandoned <<< mir_planner_executor_msgs [ Unrelated job failed ]
Abandoned <<< mir_planner_executor [ Unrelated job failed ]
Abandoned <<< youbot_arm_kinematics_moveit [ Unrelated job failed ]
Abandoned <<< youbot_driver_ros_interface [ Unrelated job failed ]
Abandoned <<< youbot_gazebo_robot [ Unrelated job failed ]
Abandoned <<< youbot_moveit [ Unrelated job failed ]
Finished <<< mcr_arm_motions [ 3.5 seconds ]


Errors << lama_planner:make /home/santosh/kinetic/logs/lama_planner/build.make.000.log
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
CMake Error at /usr/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message):
The C compiler "/usr/bin/gcc" is not able to compile a simple test program.

It fails with the following output:

Change Dir: /home/santosh/kinetic/src/lama_planner/build/LAMA/builds/release32/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_1781f/fast"

make[4]: Entering directory
'/home/santosh/kinetic/src/lama_planner/build/LAMA/builds/release32/CMakeFiles/CMakeTmp'

/usr/bin/make -f CMakeFiles/cmTC_1781f.dir/build.make
CMakeFiles/cmTC_1781f.dir/build

make[5]: Entering directory
'/home/santosh/kinetic/src/lama_planner/build/LAMA/builds/release32/CMakeFiles/CMakeTmp'

Building C object CMakeFiles/cmTC_1781f.dir/testCCompiler.c.o

/usr/bin/gcc -m32 -o CMakeFiles/cmTC_1781f.dir/testCCompiler.c.o -c
/home/santosh/kinetic/src/lama_planner/build/LAMA/builds/release32/CMakeFiles/CMakeTmp/testCCompiler.c

Linking C executable cmTC_1781f

/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1781f.dir/link.txt
--verbose=1

/usr/bin/gcc -m32 CMakeFiles/cmTC_1781f.dir/testCCompiler.c.o -o cmTC_1781f
-rdynamic

/usr/bin/ld: cannot find crt1.o: No such file or directory

/usr/bin/ld: cannot find crti.o: No such file or directory

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a
when searching for -lgcc

/usr/bin/ld: cannot find -lgcc

/usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/5/libgcc_s.so when searching for -lgcc_s

/usr/bin/ld: cannot find -lgcc_s

/usr/bin/ld: cannot find -lc

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a
when searching for -lgcc

/usr/bin/ld: cannot find -lgcc

/usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/5/libgcc_s.so when searching for -lgcc_s

/usr/bin/ld: cannot find -lgcc_s

/usr/bin/ld: cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

CMakeFiles/cmTC_1781f.dir/build.make:97: recipe for target 'cmTC_1781f'
failed

make[5]: *** [cmTC_1781f] Error 1

make[5]: Leaving directory
'/home/santosh/kinetic/src/lama_planner/build/LAMA/builds/release32/CMakeFiles/CMakeTmp'

Makefile:126: recipe for target 'cmTC_1781f/fast' failed

make[4]: *** [cmTC_1781f/fast] Error 2

make[4]: Leaving directory
'/home/santosh/kinetic/src/lama_planner/build/LAMA/builds/release32/CMakeFiles/CMakeTmp'

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:44 (project)

Traceback (most recent call last):
File "build/LAMA/build.py", line 153, in
main()
File "build/LAMA/build.py", line 149, in main
build(config_name, CONFIGS[config_name], make_parameters)
File "build/LAMA/build.py", line 125, in build
cwd=build_path)
File "build/LAMA/build.py", line 102, in try_run
subprocess.check_call(cmd, cwd=cwd)
File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '-G', 'Unix Makefiles', '-DCMAKE_BUILD_TYPE=Release', '../../src']' returned non-zero exit status 1
make[3]: *** [lama_planner] Error 1
make[2]: *** [CMakeFiles/lama_planner] Error 2
make[1]: *** [CMakeFiles/lama_planner.dir/all] Error 2
make: *** [all] Error 2
cd /home/santosh/kinetic/build/lama_planner; catkin build --get-env lama_planner | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd -
...............................................................................
Failed << lama_planner:make [ Exited with code 2 ]
Failed <<< lama_planner [ 19.0 seconds ]
Finished <<< mcr_background_change_detection [ 16.2 seconds ]
[build] Summary: 4 of 196 packages succeeded.
[build] Ignored: 28 packages were skipped or are blacklisted.
[build] Warnings: 1 packages succeeded with warnings.
[build] Abandoned: 190 packages were abandoned.
[build] Failed: 2 packages failed.
[build] Runtime: 23.6 seconds total.
[build] Note: Workspace packages have changed, please re-source setup files to use them.

Shelf pick

Picking objects from bottom shelf is not available as a streamlined solution.

It would be best if there is a action server pipeline entirely dedicated for shelf picking. This will make the normal pick simple and fast (hence more debuggable). It would be similar to how different perceives (mir_perceive_location and mir_perceive_cavity) and different inserts (mir_insert_object and mir_insert_cavity) are handled.

tags: new feature, refactoring
Assigned to: @DharminB
Project: german open 2020

soft e_stop for youbot

Need to implement a e_stop button which can kill ethercat such that the arm and base stops moving.

[PPT] Increase robustness and reduce runtime of PPT tile recognition

Is your feature request related to a problem? Please describe.
PPT recognition code needs to be updated

Describe the solution you'd like
Based on point cloud only

  • Find plane
  • Finding missing points on plane
  • Match shape of the missing points

@HAndradi please correct below

Describe alternatives you've considered
The current deep learning based dsnt scale better

ROSPlan planning pipeline

Use ROSPlan's planning pipeline as much as possible instead of the custom developed one.

Possible advantages

  • better support
  • beginner friendly (because of ROSPlan's tutorial)
  • removal of repeated code
  • following "universal" standards

[perception] Remove hardcoded orientation in mir_handle_detection

Currently the orientation of the handle in mir_handle_detection is hardcoded. It needs to be calculated. The normal of the plane of the drawer should be used as orientation.

This orientation can later be used to align the robot perpendicular to the drawer surface rather than assuming that it is parallel.

Additional context
#99 (comment)

[PyLinting] Fix pylint errors in python files

Most of the python code in the repo is not linted as per PEP8 guidelines. The average rating given by pylint for the various modules is around 3/10. The list of pylint errors can be found here
The errors need to be fixed manually.

WBC segmentation fault




[ WARN] [/move_base]: The origin for the sensor at (2.02, 1.62) is out of map bounds. So, the costmap cannot raytrace for it.
[ INFO] [/mcr_perception/object_selector]: ======================================================
[ INFO] [/mcr_perception/object_selector]: Received request to select: CONTAINER_BOX_RED-01
[ INFO] [/mcr_perception/object_selector]: ******************************************
[ INFO] [/mcr_perception/object_selector]: Searching for: CONTAINER_BOX_RED-01 or CONTAINER_BOX_RED
[ INFO] [/mcr_perception/object_selector]: Current: CONTAINER_BOX_RED
[ INFO] [/mcr_perception/object_selector]: Found: CONTAINER_BOX_RED
[ INFO] [/mcr_perception/object_selector]: ******************************************
[ERROR] [/data_logger]: bad callback: <bound method DataLogger.pick_pose_cb of <mir_data_logger_ros.data_logger.DataLogger object at 0x7f89f70567d0>>
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/topics.py", line 750, in _invoke_callback
    cb(msg)
  File "/home/robocup/ros/robocup/src/unmerged_packages_for_testing/task_planning/mir_data_logger/ros/src/mir_data_logger_ros/data_logger.py", line 205, in pick_pose_cb
    msg.header.stamp = self.tf_listener.getLatestCommonTime("/map", msg.header.frame_id)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/tf/listener.py", line 101, in getLatestCommonTime
    return self._buffer.get_latest_common_time(strip_leading_slash(source_frame), strip_leading_slash(dest_frame))
InvalidArgumentException: Invalid argument passed to get_latest_common_time in tf2 frame_ids cannot be empty

[INFO] [/insert_object_server]: State machine transitioning 'GENERATE_OBJECT_POSE':'success'-->'CHECK_IF_OBJECT_IS_AVAILABLE'


tf2 frame_ids cannot be empty
[WARN] [/wbc]: Exception occurred: Invalid argument passed to get_latest_common_time in tf2 frame_ids cannot be empty
[WARN] [/wbc]: Exception occurred: Invalid argument passed to get_latest_common_time in tf2 frame_ids cannot be empty
Traceback (most recent call last):
  File "/home/robocup/ros/robocup/src/unmerged_packages_for_testing/manipulation/mir_whole_body_motion_calculator/ros/scripts/whole_body_motion_calculator_pipeline_class", line 6, in <module>
    mir_whole_body_motion_calculator_ros.whole_body_motion_calculator_pipeline_class.main()
  File "/home/robocup/ros/robocup/src/unmerged_packages_for_testing/manipulation/mir_whole_body_motion_calculator/ros/src/mir_whole_body_motion_calculator_ros/whole_body_motion_calculator_pipeline_class.py", line 355, in main
    whole_body_motion_calculator_pipeline.start()
  File "/home/robocup/ros/robocup/src/unmerged_packages_for_testing/manipulation/mir_whole_body_motion_calculator/ros/src/mir_whole_body_motion_calculator_ros/whole_body_motion_calculator_pipeline_class.py", line 138, in start
    state = self.idle_state()
  File "/home/robocup/ros/robocup/src/unmerged_packages_for_testing/manipulation/mir_whole_body_motion_calculator/ros/src/mir_whole_body_motion_calculator_ros/whole_body_motion_calculator_pipeline_class.py", line 186, in idle_state
    sampled_poses, base_motion_component = self.whole_body_motion_calculator.get_poses_and_base_motion(transformed_input_pose)
  File "/home/robocup/ros/robocup/src/unmerged_packages_for_testing/manipulation/mir_whole_body_motion_calculator/ros/src/mir_whole_body_motion_calculator_ros/simple_whole_body_motion_calculator_class.py", line 75, in get_poses_and_base_motion
    transformed_target_pose, base_motion_component = self.transform_target_pose(target_pose)
  File "/home/robocup/ros/robocup/src/unmerged_packages_for_testing/manipulation/mir_whole_body_motion_calculator/ros/src/mir_whole_body_motion_calculator_ros/simple_whole_body_motion_calculator_class.py", line 106, in transform_target_pose
    target_pose_frame = posemath.fromMsg(target_pose.pose)
AttributeError: 'NoneType' object has no attribute 'pose'
[WARN] [/pregrasp_planner_node]: Inbound TCP/IP connection failed: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.
[wbc-13] process has died [pid 9025, exit code 1, cmd /home/robocup/ros/robocup/src/unmerged_packages_for_testing/manipulation/mir_whole_body_motion_calculator/ros/scripts/whole_body_motion_calculator_pipeline_class ~dbc_pose_2:=/mcr_navigation/direct_base_cont

Randomize world creation and create occupancy grid maps

Generate world configuration for at work scenario (walls and workstations and shelves)
This will be represented using a .xacro file.
Accompanied with it should be an occupancy grid (.pgm and .yaml) (along with navigation_goals.yaml if possible)

This could help the testing of robocup related software since we can test against different configurations of workstations in simulation.

[task planning] visualize KB and task plan

We want to visualize two things

  1. the facts and goals in the knowledge base. This includes locations of objects, their target destinations, state of the robot's rear platform, whether an object is in the gripper, etc.
  2. the task plan

Using Rviz markers might be the best way to do this. CAD models of all objects are available here (rviz can be used to display meshes)

[Vision] Test and report image recognition task for google coral stick

Is your feature request related to a problem? Please describe.
Google coral sicks can be used to do Deep learning tasks .
Here we have to folow coral tutorials to do :
image

Describe the solution you'd like
https://colab.sandbox.google.com/github/google-coral/tutorials/blob/master/retrain_classification_ptq_tf1.ipynb

Describe alternatives you've considered
https://tvm.apache.org/docs/tutorials/relay_quick_start.html#sphx-glr-tutorials-relay-quick-start-py

Add pre-commit hooks to the repo

Pre-commit hooks are usually run before committing the changes locally. If the checks dont pass then one cannot commit the files. Pre-commit hooks can for example take care of code formatting and linting, and support multiple languages.

Solution
Add .pre-commit-config.yaml to the repo. This file has all the desired configurations.
For more info, refer here.

move_base_safe actionlib server should handle preemption better

During BNT, there is a chance that the robot does not reach the waypoint within 60 seconds (this is the timeout specified in our SM).
If it does not, the next waypoint goal preempts the current (failed) waypoint goal, preempting the actionlib server. This preemption is not handled correctly, resulting in the second waypoint being skipped too.

@mhwasil can you attach the log from BNT?

[Planning] Define Status code for all actions

Define a message in mir_planning_msgs that's similar to the Status message defined in ropod_ros_msgs

The purpose of this message is to enumerate all possible outcomes of all components, including success and failure outcomes. Eventually this message will be a field in the feedback/result of GenericExecute

For now only module_code, status_code and sm_state are required.
You could use status codes 1-100 for mir_move_base_safe, 101-200 for mir_perceive_location etc.

To find out all the possible outcomes of an action you can talk to the following people:

mir_move_base_safe - Dharmin
mir_perceive_location - Wasil
mir_perceive_cavity - Heruka
mir_perceive_rtt - Heruka
mir_pick_object/from_shelf/from_drawer - Carlo / Dharmin
mir_place_object - Carlo / Dharmin
mir_stage/unstage_object - Carlo Dharmin
mir_insert_cavity/object - Carlo/ Dharmin

Sphinx rtd theme is not hard dependency anymore

sphinx rtd theme cannot be used as hard dependency anymore

Theme error:
sphinx_rtd_theme is no longer a hard dependency since version 1.4.0. Please install it manually.(pip install sphinx_rtd_theme)

use pip instead.
can you PR @DharminB

migration to ros2

Migrated and tested

Migrated

In progress

[manipulation] Calculate safe distance before perceiving drawer handle

Currently, the safe distance from the drawer is being hardcoded in open_drawer_server and close_drawer_server in package mir_manipulate_drawer.

The safe distance is the distance between front laser and drawer surface. The robot needs to make sure that it is far away from the drawer to move that arm without collision. The distance is hardcoded based on how far ahead is the arm gripper from laser when it is in the required orientation. This, however, can be calculated based on

  1. joint angles of the recorded arm orientation (here drawer_handle_pre_grasp)
  2. transform from front laser to gripper

Currently only x value is needed but it would be better if all 3 values are calculated.

Additional context
#99 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.