You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-67Lines changed: 1 addition & 67 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,73 +4,7 @@ neo_docking2 is a ROS 2 package, which is the spirtual successor of neo_docking.
4
4
5
5
Like neo_docking, neo_docking2 docks the Neobotix robot autonomously with the charging station. Unlike neo_docking, neo_docking2 does not use a depth camera nor QR tags for detecting the coordinates of the charging contacts. Rather, the user has to once teach the docking position of the robot by manually driving (prefarably with a joystick) and docking the robot to the charging contacts. The docking coordinates are stored in a yaml file, with the help of a service. Later, the docking coordinates are utilized in a 3-step docking process coupled with Navigation 2.
6
6
7
-
8
-
## To Build:
9
-
10
-
Open a command line, source your ros distribution and continue the following steps:
the launch can be found under the corresponding robot package. The poses for docking are stored under `dock_pose.yaml`, which can be found under this (neo_docking2) package.
28
-
29
-
Namespaced docking parameters are also available for certain robots. Please read our [official documentation to know more about launching navigation with namespacing.](https://neobotix-docs.de/ros/ros1/autonomous_navigation.html)
30
-
31
-
* launch the node using the given launch file:
32
-
33
-
```ros2 launch neo_docking2 docking_launch.py```
34
-
35
-
by default uses the pose from `dock_pose.yaml`. Additionally namespace argument can be utilized for namespacing.
36
-
37
-
* or just use `ros2 run` to run the executable. Of course, the params can be also passed along with it using the extension `--ros-args` and pointing to the file containing the params
38
-
39
-
```ros2 run neo_docking2 neo_docking2 --ros-args --params-file src/neo_docking2/launch/dock_pose.yaml```
40
-
41
-
## Available services:
42
-
*`/go_and_dock`: Initiates docking process
43
-
*`/undock_and_arm`: Undocks and is ready for the next command
44
-
*`/store_pose`: Poses are stored in the `dock_pose.yaml` file, which can be found under the launch directory.
45
-
46
-
## The process:
47
-
48
-
First, we need to store the pose of the docking station, it needs to be done manually. Use the joystick to navigate the robot to the docking position. Once the robot is in the docking position, use the `/store_pose` service to store the docking position.
49
-
50
-
```ros2 service call /store_pose std_srvs/srv/Empty {}```
51
-
52
-
Next, the docking is a 2 step process, we need to use `/go_and_dock` service to initiate the docking.
53
-
54
-
```ros2 service call /go_and_dock std_srvs/srv/Empty {} ```
55
-
56
-
Once the process has been initiated, the robot navigates to a pre-dock position, which is 0.5 meters in front of the docking station. Then in the second step, the robot starts to dock.
57
-
58
-
To undock, use the service `/undock_and_arm`:
59
-
60
-
```ros2 service call /undock_and_arm std_srvs/srv/Empty {} ```
61
-
62
-
Once the process has been initiated, the robot navigates back to the pre-dock position.
63
-
64
-
## Safety Instruction
65
-
66
-
If you have brought the robot and the charging station from us, please remember the following points at all the times:
67
-
68
-
- Once the robot is docked, make sure that you do not pass any velocity commands nor send a navigation goal from RViz. This would cause serious physical damage to the charging station.
69
-
- While storing the poses for the charging station, you do not have to go very deep into the charging station, rather the advisable range would be not more than 2.0 cm.
70
-
71
-
## Open Issue:
72
-
73
-
Once you store the pose, it is always necessary for you to check if the values are in `double` data type. Currently there is an issue with the Yaml-CPP not being able to emit 1 or 0 as a `double` data type. See this https://github.com/neobotix/neo_docking2/issues/14 for more details.
7
+
More information about the docking can be found in our [official documenation.](https://neobotix-docs.de/ros/packages/neo_docking2.html)
0 commit comments