Skip to content

Commit

Permalink
Merge pull request #35 from OCRTOC/real_robot_stage
Browse files Browse the repository at this point in the history
Real robot stage
  • Loading branch information
rar-lw authored Oct 10, 2020
2 parents 9b11c19 + 11d9aa0 commit cdda4ec
Show file tree
Hide file tree
Showing 430 changed files with 530,499 additions and 23,563 deletions.
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.idea/
*~
/CMakeLists.txt
*.pyc

# SAPIEN cache file
*.convex.stl

13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
## [V1.4] release date: 2020-10-10
**Changes in v1.4**
- Added ROS drivers (/drivers).
- Kinect DK driver.
- UR5E driver.
- Robotiq-2F85 driver.
- Realsense D435i driver.
- Added models and scenes for the real robot stage (/ocrtoc_materials_real_stage).
- Added moveit config (/ur5_e_robotiq_2f_85_moveit_config).
- Added launch files and shell scripts (/ocrtoc_task/launch).
- Updated Dockerfile. Added install dependencies.
- Extended README.md with "Information about the real robot stage".

## [V1.3] release date: 2020-09-11
**Changes in v1.3**
- Added Dockerfile and build script (/docker). You can rebuild the docker image as you wish using the Dockerfile.
Expand Down
75 changes: 74 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,83 @@ sudo docker commit ocrtoc_container your_submission_docker_image_name
## Related documentations
[SAPIEN GUI Documentation](sapien_simulator/README.md)

## Known issues
## Known simulator issues
- The reset time button in the GUI of the gazebo simulator should not be used. It will cause the robot to explode. Resetting can be done by ROS service /gazebo/reset_simulation instead.

- In general, the physics engine used in Sapien works more stable than that in Gazebo (open dynamics engine). If you encounter weird issues while using Gazebo, please use Sapien instead.


-----

## Information about the real robot stage
**Hardware safety configuration for the robot arm**
- Joint position limits (min: -pi, max: pi).
- Joint velocity limits (max: 45 deg/s).
- A safety plane is set at 2cm above the table.


**Differences between the real robot stage and the simulation stage**
- The frame_id of visual data.
- Some contents of the tf tree.
- The control values of /gripper_controller/gripper_cmd/goal. In the real robot stage, "position = 0.0" means openning the gripper to its maximum, and "position = 0.085" means closing the gripper. In addtion, the "max_effort" must be in range 30.0N - 100.0N.

**Sample data collected from the real robot**

You can download [image-point.bag](https://ocrtoc-public.oss-cn-hangzhou.aliyuncs.com/rosbag/0924/image-point.bag)
to check visual data and its frame_id. With [other-topic.bag](https://ocrtoc-public.oss-cn-hangzhou.aliyuncs.com/rosbag/0924/other-topic.bag) you can check some other topics.

**Important rules for real robot trials**

Before you begin a real robot trial, make sure you follow the following rules:
- (If applicable) Get the latest release of OCRTOC software package and merge it into your code.
- (If applicable) Update your docker image by rebuilding the Dockerfile or by manual installing [dependencies](https://github.com/OCRTOC/OCRTOC_software_package/commit/89a760d4336698661cdbdf39db01658ff9d75d58#diff-ebacf6f6ae4ee68078bb16454b23247d).
- Make sure you use motion planning before you move the robot arm, otherwise your code may result in hardware damage.
- Make sure the joint velocities generated by your code are within the allowed joint velocity limitis (max: 45 deg/s). Otherwise the hardware safety system will stop the execution of the arm movement.

**Procedure of a real robot trial**

For the first real robot trial you need to finish uploading your docker image at least 12 hours before your trial appointment, so that we have enough time to download your docker image. For later trials, you need to finish the uploading at least 2 hours before your trial appointment.

1. Email us the following information:
- The storage link of your docker image
- If you use a private registry, you need to provide us the username and password, so that we can get access to your registry.


2. Before your trial starts, we will create a docker container and launch all needed drivers.

```
# Create container
sudo docker run -i -d --gpus all --name trial_container --network host \
--privileged -v /dev:/dev -e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix ${your_image_name}
sudo xhost +local:`docker inspect --format='{{ .Config.Hostname }}' trial_container`
# Launch drivers.
sudo docker exec -it trial_container bash
source /root/ocrtoc_ws/install/setup.bash
roslaunch ocrtoc_task all_devices.launch robotip:=${robot_ip}
```

3. During the trial, we will launch your solution and triger the task.

```
# Launch solution
docker exec -it trial_container bash
source /root/ocrtoc_ws/install/setup.bash
roslaunch ocrtoc_solution commit_solution_real_stage.launch
# Trigger
docker exec -it trial_container bash
source /root/ocrtoc_ws/install/setup.bash
roslaunch ocrtoc_task trigger_real_stage.launch scene:=1-1
```

4. During the trial, you can watch the whole procedure using zoom (we will provide the link). We will share the output of the terminal and rviz through screen sharing. You can choose the topics that you want to monitor in rviz and put your rviz launch command in "commit_solution_real_stage.launch".

5. You are allowed to update your docker image during the trial.

6. You can save the data (up to 5GB) that you want to keep under "/root/upload". After the trial we will send you the data and the log file of your solution.


## Technical support
If you encounter technical issues regarding this software package, please contact us at [email protected]
35 changes: 35 additions & 0 deletions description/realsense2_description/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package realsense2_description
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2.2.17 (2020-09-09)
-------------------

2.2.16 (2020-08-06)
-------------------

2.2.15 (2020-07-13)
-------------------
* Merge remote-tracking branch 'origin/development' into development
* Merge pull request `#1126 <https://github.com/intel-ros/realsense/issues/1126>`_ from mcamurri/add-d435i-xacro
add D435i modules, urdf and launchfile
* comply to ROS Noetic xacro rules (backcompatible with ROS Melodic)
* Merge branch 'development' into add-d435i-xacro
* Merge branch 'development' of https://github.com/IntelRealSense/realsense-ros into development
realsense2_description/urdf/test_d435_multiple_cameras.urdf.xacro
* move xml start line in the right place
* add D435i modules, urdf and launchfile
* fix use_nominal_extrinsics arg/property
* add D435i modules, urdf and launchfile
* Contributors: Marco Camurri, doronhi

2.2.14 (2020-06-18)
-------------------
* fix urdf issues (arg use_nominal_extrinsics).
* Add noetic support:
- urdf files.
- change state_publisher into robot_state_publisher
* correct offset between camera_link and base_link
* Contributors: Brice, Marco Camurri, doronhi

* upgrade version to 2.2.13
6 changes: 5 additions & 1 deletion description/realsense2_description/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ catkin_package(
)

# Install files
install(DIRECTORY meshes
install(DIRECTORY launch meshes rviz urdf
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

# Tests
if (CATKIN_ENABLE_TESTING)
catkin_add_nosetests(tests)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense2_description)/urdf/test_d415_camera.urdf.xacro' use_nominal_extrinsics:=true add_plug:=true" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense2_description)/rviz/urdf.rviz" required="true" />
</launch>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense2_description)/urdf/test_d435_camera.urdf.xacro' use_nominal_extrinsics:=true add_plug:=true" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense2_description)/rviz/urdf.rviz" required="true" />
</launch>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense2_description)/urdf/test_d435i_camera.urdf.xacro' use_nominal_extrinsics:=true" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense2_description)/rviz/urdf.rviz" required="true" />
</launch>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense2_description)/urdf/test_d435_multiple_cameras.urdf.xacro' use_nominal_extrinsics:=true" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense2_description)/rviz/urdf.rviz" required="true" />
</launch>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense2_description)/urdf/test_r410_camera.urdf.xacro' use_nominal_extrinsics:=true" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense2_description)/rviz/urdf.rviz" required="true" />
</launch>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find realsense2_description)/urdf/test_r430_camera.urdf.xacro' use_nominal_extrinsics:=true" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

<arg name="gui" default="True" />
<param name="use_gui" value="$(arg gui)" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find realsense2_description)/rviz/urdf.rviz" required="true" />
</launch>
Loading

0 comments on commit cdda4ec

Please sign in to comment.