Skip to content

Commit e43e771

Browse files
authored
Merge pull request #24 from OCRTOC/release_v1.3
Release v1.3
2 parents 7caa80c + 5e1314d commit e43e771

File tree

8 files changed

+119
-9
lines changed

8 files changed

+119
-9
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
## [V1.3] release date: 2020-09-11
2+
**Changes in v1.3**
3+
- Added Dockerfile and build script (/docker). You can rebuild the docker image as you wish using the Dockerfile.
4+
- Upgraded docker image. Follow the instructions in the readme file to download the new docker image. However this is not a MUST, if the previous docker image already fulfiled your development requirement.
5+
- Replaced cuda-runtime with cuda-devel.
6+
- Added models and scenes released in v1.1.
7+
- Fixed the Sapien controller issue (https://github.com/OCRTOC/OCRTOC_software_package/issues/10)
8+
- Fixed the Sapien camera_info timestamp issue (https://github.com/OCRTOC/OCRTOC_software_package/issues/14)
9+
- For those of you who want to do some fixings (such as gripper or urdf models) on your own, we allow the modifiction in the following folders "/description", "/gazebo_simulator", "/sapien_simluator".
10+
111
## [V1.2] release date: 2020-09-03
212
**Changes in v1.2**
313
- Updated the method for task evaluation. For each task we calculate the average distance error of all objects instead of their sum.

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ The docker image is not part of the OCRTOC software package and needs be downloa
2626

2727
```bash
2828
# Mirror address of China (ShangHai)
29-
sudo docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/ocrtoc:release1.0
29+
sudo docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/ocrtoc:release1.3
3030
# Mirror address of the United States (Silicon Valley)
31-
sudo docker pull registry.us-west-1.aliyuncs.com/tcc-public/ocrtoc:release1.0
31+
sudo docker pull registry.us-west-1.aliyuncs.com/tcc-public/ocrtoc:release1.3
3232
```
3333

3434
The content of the docker image is as follows:
@@ -45,9 +45,10 @@ The content of the docker image is as follows:
4545

4646
## File Structure of the OCRTOC software package
4747

48-
- **description**: The description files for hardware simulation. (**No modifiction allowed**)
49-
- **gazebo_simulator**: Setups and scripts for the Gazebo simluator. (**No modifiction allowed**)
50-
- **sapien_simluator**: Setups and scripts for the Sapien simluator. (**No modifiction allowed**)
48+
- **description**: The description files for hardware simulation.
49+
- **docker**: The Dockerfile and build script. You can modify the Dockerfile and rebuild your docker image.
50+
- **gazebo_simulator**: Setups and scripts for the Gazebo simluator.
51+
- **sapien_simluator**: Setups and scripts for the Sapien simluator.
5152
- **ocrtoc_task**: Scripts for task execution and evaluation. (**No modifiction allowed**)
5253
- **ocrtoc_solution**: Setups and scripts for building the solution. Sample code is given in ocrtoc_solution/scripts/commit_solution.py (**Do not change the file name!**). You can modify this file to develop your own solution. In addition you can also add any new software modules to this folder. Make sure that your commit_solution.py serves as the main function of your solution and it incorporates all the needed software modules to do the task. After your solution is uploaded to the competition platform, we will run your solution by ocrtoc_solution/launch/commit_solution.launch (**Do not change the file name!**).
5354

@@ -108,7 +109,8 @@ After you obtained the task information, you need to implement the core function
108109

109110
**Evaluation**
110111

111-
After you finished the task, you need to publish the actionlib result topic. The format of this result is a string. We do not parse the content of this string. Instead, it is only used to activate our callback function for evaluation. So you can write anything reasonable into this string, such as "done", "finished" and so on. If you do not publish the actionlib result at all, your solution will be terminated after a predefined timeout (e.g. 10 minutes), and then the evaluation will start automatically. We highly recommend you to publish the actionlib result topic, once your solution has finished the execution. This helps us compute the execution time of your solution. If two teams have the same performance, the team consuming less execution time will be ranked higher.
112+
After you finished the task, you need to publish the actionlib result topic. The format of this result is a string. We do not parse the content of this string. Instead, it is only used to activate our callback function for evaluation. So you can write anything reasonable into this string, such as "done", "finished" and so on. If you do not publish the actionlib result at all, your solution will be terminated after a predefined timeout (e.g. 10 minutes), and then the evaluation will start automatically. We highly recommend you to publish the actionlib result topic, once your solution has finished the execution. This helps us compute the execution time of your solution. For each object in the target configuration, a distance error will be calculated based on its actual pose and its target pose. There will be an upper bound for the distance error of a single object. For each task, distance errors of all the objects are summed up. The performance of the solution is ranked according to the summed distance error of all tasks. If two teams have the same performance, the team consuming less execution time will be ranked higher.
113+
112114

113115

114116
## Use the OCRTOC software package on your local machine
@@ -126,7 +128,7 @@ sudo docker run -i -d --gpus all --name ocrtoc_container \
126128
-e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1 \
127129
-v /tmp/.X11-unix:/tmp/.X11-unix \
128130
-v $HOME/OCRTOC_software_package:/root/ocrtoc_ws/src \
129-
registry.cn-shanghai.aliyuncs.com/tcc-public/ocrtoc:release1.0
131+
registry.cn-shanghai.aliyuncs.com/tcc-public/ocrtoc:release1.3
130132
sudo xhost +local:`sudo docker inspect --format='{{ .Config.Hostname }}' ocrtoc_container`
131133
```
132134

docker/Dockerfile

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
from nvidia/cudagl:10.2-devel-ubuntu18.04
2+
3+
ENV TZ=Asia/Shanghai
4+
ENV NVIDIA_VISIBLE_DEVICES all
5+
ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute
6+
7+
# Install Ubuntu tools.
8+
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
9+
&& rm /etc/apt/sources.list.d/cuda.list \
10+
&& rm /etc/apt/sources.list.d/nvidia-ml.list \
11+
&& apt-get update \
12+
&& apt-get install -y lsb-release psmisc tree vim net-tools iputils-ping wget git python3-pip libglm-dev \
13+
# Install gl/x package for visualization inside docker
14+
&& apt-get install -y libglvnd0 libgl1 libglx0 libegl1 libxext6 libx11-6
15+
16+
# Install ROS.
17+
SHELL ["/bin/bash", "-c"]
18+
RUN sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list' \
19+
&& apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 \
20+
&& apt update \
21+
&& apt install -y ros-melodic-desktop-full \
22+
&& echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc \
23+
&& source ~/.bashrc \
24+
&& apt install -y python-rosdep \
25+
&& echo "151.101.84.133 raw.githubusercontent.com" >> /etc/hosts \
26+
&& rosdep init \
27+
&& rosdep update
28+
29+
# Upgrade Gazebo.
30+
RUN sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' \
31+
&& wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - \
32+
&& apt-get update \
33+
&& apt-get install -y gazebo9 \
34+
&& apt upgrade -y libignition-math4
35+
36+
# Install ROS dependencies.
37+
RUN pip3 install catkin_pkg numpy transforms3d rospkg \
38+
&& apt-get install -y ros-melodic-ddynamic-reconfigure \
39+
ros-melodic-gripper-action-controller \
40+
ros-melodic-joint-trajectory-controller \
41+
ros-melodic-industrial-robot-status-interface \
42+
ros-melodic-moveit \
43+
ros-melodic-ros-control \
44+
ros-melodic-ros-controllers \
45+
ros-melodic-ur-msgs
46+
47+
# Copy files.
48+
COPY ocrtoc_materials /root/ocrtoc_materials
49+
COPY workspace /workspace
50+
51+
# Install Sapien.
52+
RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - \
53+
&& wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.2.148-bionic.list https://packages.lunarg.com/vulkan/1.2.148/lunarg-vulkan-1.2.148-bionic.list \
54+
&& apt update \
55+
&& apt install -y vulkan-sdk libglew-dev \
56+
&& cd /workspace/glfw \
57+
&& mkdir build && cd build && cmake .. && make install \
58+
&& cd /workspace/spdlog \
59+
&& mkdir build && cd build && cmake .. && make install \
60+
&& cd /workspace/sapien \
61+
&& source /opt/ros/melodic/setup.bash \
62+
&& mkdir build && cd build && cmake .. && make pysapien_ros1
63+
64+
# Others.
65+
RUN cd /root \
66+
&& mkdir -p ocrtoc_ws/src \
67+
&& cd ocrtoc_ws \
68+
&& source /opt/ros/melodic/setup.bash \
69+
&& catkin_make \
70+
&& echo "source /root/ocrtoc_ws/devel/setup.bash" >> ~/.bashrc \
71+
&& rm -rf /var/lib/apt/lists/*

docker/build.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/bin/bash
2+
3+
OSS_BUCKET_DOMAIN="https://ocrtoc-public.oss-cn-hangzhou.aliyuncs.com"
4+
# Other option.
5+
# OSS_BUCKET_DOMAIN="https://ocrtoc-public.oss-accelerate.aliyuncs.com"
6+
7+
echo "Downloading ocrtoc_materials..."
8+
mkdir -p ocrtoc_materials
9+
cd ocrtoc_materials
10+
wget ${OSS_BUCKET_DOMAIN}/ocrtoc_materials/models.tar.gz
11+
tar -zxvf models.tar.gz
12+
rm -rf models.tar.gz
13+
wget ${OSS_BUCKET_DOMAIN}/ocrtoc_materials/scenes.tar.gz
14+
tar -zxvf scenes.tar.gz
15+
rm -rf scenes.tar.gz
16+
wget ${OSS_BUCKET_DOMAIN}/ocrtoc_materials/objects.csv
17+
18+
echo "Downloading sapien files..."
19+
cd ..
20+
wget ${OSS_BUCKET_DOMAIN}/sapien.tar.gz
21+
tar -zxvf sapien.tar.gz
22+
rm -rf sapien.tar.gz
23+
24+
echo "Build image."
25+
docker build -t you_docker_image:tag_name .
26+
27+
echo "Done."

ocrtoc_task/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ catkin_package(
2323
install(DIRECTORY
2424
action
2525
launch
26-
urdf
2726
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
2827
)
2928
install(PROGRAMS

sapien_simulator/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ install(DIRECTORY
1515
glsl_shader
1616
launch
1717
rviz
18+
urdf
1819
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
1920
)
2021
install(PROGRAMS

sapien_simulator/launch/ur5e_upload.launch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<launch>
33
<param name="robot_description"
4-
command="$(find xacro)/xacro --inorder '$(find ocrtoc_task)/urdf/ur5e.urdf'"/>
4+
command="$(find xacro)/xacro --inorder '$(find sapien_simulator)/urdf/ur5e.urdf'"/>
55
<param name="robot_description_semantic"
66
textfile="$(find sapien_simulator)/config/ur5e.srdf"/>
77
<param name="joint_limits"
File renamed without changes.

0 commit comments

Comments
 (0)