|
4 | 4 |
|
5 | 5 | [](https://github.com/rt-net/raspimouse_sim/actions/workflows/industrial_ci.yml) |
6 | 6 |
|
7 | | -ROS 2 package suite for Raspberry Pi Mouse Simulator runs on Gazebo |
| 7 | +ROS 2 package suite for simulating the Raspberry Pi Mouse in Gazebo |
8 | 8 |
|
9 | 9 |  |
10 | 10 |
|
11 | | -**This branch is intended for ROS 2 Jazzy. For other distributions, please refer to the corresponding branches listed below.** |
| 11 | +## Table of Contents |
12 | 12 |
|
13 | | -- ROS 2 Humble ([humble](https://github.com/rt-net/raspimouse_sim/tree/humble)) |
| 13 | +- [raspimouse\_sim](#raspimouse_sim) |
| 14 | + - [Table of Contents](#table-of-contents) |
| 15 | + - [Supported ROS distributions](#supported-ros-distributions) |
| 16 | + - [Requirements](#requirements) |
| 17 | + - [Installation](#installation) |
| 18 | + - [Binary Installation](#binary-installation) |
| 19 | + - [Source Build](#source-build) |
| 20 | + - [QuickStart](#quickstart) |
| 21 | + - [Packages](#packages) |
| 22 | + - [How to Use Examples](#how-to-use-examples) |
| 23 | + - [License](#license) |
| 24 | + - [Contributing](#contributing) |
| 25 | + - [Acknowledgements](#acknowledgements) |
14 | 26 |
|
| 27 | +## Supported ROS distributions |
15 | 28 |
|
16 | | -## Requirements |
| 29 | +### ROS 2 |
| 30 | + |
| 31 | +- [Humble Hawksbill](https://github.com/rt-net/raspimouse_sim/tree/humble) |
| 32 | +- [Jazzy Jalisco](https://github.com/rt-net/raspimouse_sim/tree/jazzy) |
17 | 33 |
|
18 | | -requires the following to run: |
| 34 | +## Requirements |
19 | 35 |
|
20 | | -* Ubuntu |
21 | | - * Ubuntu 24.04 Noble Numbat |
22 | | -* ROS 2 |
23 | | - * ROS 2 Jazzy Jalisco |
24 | | -* Gazebo |
25 | | - * Gazebo Sim 8.x |
26 | | -* ROS 2 Package |
27 | | - * ros-jazzy-desktop-full |
| 36 | +- OS |
| 37 | + - Ubuntu Desktop 24.04 |
| 38 | +- ROS 2 |
| 39 | + - ROS 2 Jazzy Jalisco |
| 40 | +- Gazebo |
| 41 | + - Gazebo Sim 8.x |
28 | 42 |
|
29 | 43 | ## Installation |
30 | 44 |
|
31 | | -Download this ROS 2 package. |
| 45 | +### Binary Installation |
32 | 46 |
|
33 | | -```sh |
34 | | -cd ~/ros2_ws/src |
35 | | -git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_sim.git |
| 47 | +```bash |
| 48 | +sudo apt install ros-jazzy-raspimouse-sim |
36 | 49 | ``` |
37 | 50 |
|
38 | | -Download the dependent ROS 2 packages. |
| 51 | +### Source Build |
39 | 52 |
|
40 | | -```sh |
41 | | -cd ~/ros2_ws/src |
42 | | -git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_ros2_examples.git |
43 | | -git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_slam_navigation_ros2.git |
44 | | -git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_description.git |
45 | | -rosdep install -r -y -i --from-paths raspimouse* |
46 | | -``` |
| 53 | +```bash |
| 54 | +# Create workspace directory |
| 55 | +mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src |
47 | 56 |
|
48 | | -Build this package using `colcon`. |
| 57 | +# Clone package |
| 58 | +git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_sim.git |
49 | 59 |
|
50 | | -```sh |
| 60 | +# Install dependencies |
| 61 | +rosdep install -r -y -i --from-paths . |
| 62 | + |
| 63 | +# Build & Install |
51 | 64 | cd ~/ros2_ws |
52 | 65 | colcon build --symlink-install |
53 | 66 | source ~/ros2_ws/install/setup.bash |
54 | 67 | ``` |
55 | 68 |
|
56 | 69 | ## QuickStart |
57 | 70 |
|
58 | | -After building this package, run the following commands. |
| 71 | +The following command launches the Gazebo simulator and displays the Raspberry Pi Mouse model. |
59 | 72 |
|
60 | 73 | ```sh |
61 | 74 | ros2 launch raspimouse_gazebo raspimouse_with_emptyworld.launch.py |
62 | 75 | ``` |
63 | 76 |
|
64 | | -## Examples |
65 | | - |
66 | | -These exsamples require [raspimouse_ros2_examples](https://github.com/rt-net/raspimouse_ros2_examples) to operate. |
67 | | - |
68 | | -### Joystick Controll |
69 | | - |
70 | | -Terminal 1: |
71 | | - |
72 | | -```sh |
73 | | -ros2 launch raspimouse_gazebo raspimouse_with_emptyworld.launch.py |
74 | | -``` |
75 | | - |
76 | | -Terminal 2: |
77 | | - |
78 | | -```sh |
79 | | -ros2 launch raspimouse_ros2_examples teleop_joy.launch.py joydev:="/dev/input/js0" joyconfig:=f710 mouse:=false |
80 | | -``` |
81 | | - |
82 | | - |
83 | | - |
84 | | -### Object Tracking |
85 | | - |
86 | | -Terminal 1: |
87 | | - |
88 | | -```sh |
89 | | -ros2 launch raspimouse_gazebo raspimouse_with_color_objects.launch.py use_rgb_camera:=true |
90 | | -``` |
91 | | - |
92 | | -Terminal 2: |
93 | | - |
94 | | -```sh |
95 | | -ros2 launch raspimouse_ros2_examples object_tracking.launch.py mouse:=false use_camera_node:=false |
96 | | -``` |
97 | | - |
98 | | - |
99 | | - |
100 | | -### camera_line_follower |
101 | | - |
102 | | -Terminal 1: |
103 | | - |
104 | | -```sh |
105 | | -ros2 launch raspimouse_gazebo raspimouse_with_line_follower_field.launch.py use_rgb_camera:=true camera_downward:=true |
106 | | -``` |
107 | | - |
108 | | -Terminal 2: |
109 | | - |
110 | | -```sh |
111 | | -ros2 launch raspimouse_ros2_examples camera_line_follower.launch.py mouse:=false use_camera_node:=false |
112 | | -``` |
113 | | - |
114 | | -Terminal 3: Start |
115 | | - |
116 | | -```sh |
117 | | -ros2 topic pub --once /switches raspimouse_msgs/msg/Switches "{switch0: false, switch1: false, switch2: true}" |
118 | | -``` |
119 | | - |
120 | | -Terminal 3: Stop |
121 | | -```sh |
122 | | -ros2 topic pub --once /switches raspimouse_msgs/msg/Switches "{switch0: true, switch1: false, switch2: false}" |
123 | | -``` |
124 | | - |
125 | | -For information on parameters in camera line follower, click [here](https://github.com/rt-net/raspimouse_ros2_examples/blob/master/README.en.md#parameters). |
| 77 | +## Packages |
126 | 78 |
|
127 | | - |
| 79 | +- raspimouse_sim |
| 80 | + - Manages meta-information for the packages in this repository. |
| 81 | +- raspimouse_fake |
| 82 | + - This package simulates the motor control interface of the Raspberry Pi Mouse. |
| 83 | +- raspimouse_gazebo |
| 84 | + - This package provides models and scripts to set up a simulation environment on [Gazebo](https://gazebosim.org). |
128 | 85 |
|
129 | | -### SLAM & Navigation |
| 86 | +## How to Use Examples |
130 | 87 |
|
131 | | -This exsample requires [raspimouse_slam_navigation_ros2](https://github.com/rt-net/raspimouse_slam_navigation_ros2) to operate. |
132 | | - |
133 | | -#### SLAM |
134 | | - |
135 | | -Terminal 1: |
136 | | -```sh |
137 | | -ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=urg |
138 | | -``` |
139 | | -The lidar option supports `urg`, `lds`, and `rplidar`. |
140 | | - |
141 | | -Terminal 2: |
142 | | -```sh |
143 | | -ros2 launch raspimouse_ros2_examples teleop_joy.launch.py joydev:="/dev/input/js0" joyconfig:=f710 mouse:=false |
144 | | -``` |
145 | | - |
146 | | -Terminal 3: |
147 | | -```sh |
148 | | -ros2 launch raspimouse_slam pc_slam.launch.py |
149 | | -``` |
| 88 | +Detailed usage of the sample program is explained in the [README](./raspimouse_gazebo/README.en.md) of the `raspimouse_gazebo` package. |
150 | 89 |
|
151 | | - |
| 90 | +- Examples |
| 91 | + - Joystick Control |
| 92 | + - Object Tracking |
| 93 | + - Camera Line Follower |
| 94 | + - SLAM & Navigation |
152 | 95 |
|
153 | | -Terminal 4: |
154 | | -```sh |
155 | | -ros2 run nav2_map_server map_saver_cli -f ~/MAP_NAME |
156 | | -``` |
157 | | - |
158 | | - |
159 | | - |
160 | | -#### Navigation |
161 | | - |
162 | | -Terminal 1: |
163 | | -```sh |
164 | | -ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=urg |
165 | | -``` |
166 | | -The lidar option supports `urg`, `lds`, and `rplidar`. |
167 | | - |
168 | | -Terminal 2: |
169 | | -```sh |
170 | | -ros2 launch raspimouse_navigation pc_navigation.launch.py use_sim_time:=true map:=$HOME/MAP_NAME.yaml |
171 | | -``` |
172 | | - |
173 | | - |
174 | | - |
175 | | -## Model data list |
176 | | - |
177 | | -### course_curve_50x50cm |
178 | | -Curve course panel for line following. |
179 | | -Panel size is 50 cm x 50 cm and line width is 4 cm. |
180 | | - |
181 | | - |
182 | | - |
183 | | -### course_straight_50x50cm |
184 | | -Straight course panel for line following. |
185 | | -Panel size is 50 cm x 50 cm and line width is 4 cm. |
186 | | - |
187 | | - |
188 | | - |
189 | | -### cube_*cm_color-name |
190 | | -Each cube is 5 cm, 7.5 cm, 10 cm, and 15 cm, 30 cm on a side. |
191 | | -The cube colors are red, yellow, blue, green and black. |
| 96 | +## License |
192 | 97 |
|
193 | | - |
| 98 | +(C) 2016 RT Corporation \<support@rt-net.jp\> |
194 | 99 |
|
195 | | -### about dae files |
196 | | -The dae file is edited in Blender 4.0. |
| 100 | +Each file is licensed as stated in their headers. |
| 101 | +If no license is specified, the file is licensed under the MIT License. |
| 102 | +The full license text is available in the [LICENSE](./LICENSE) file or at [https://opensource.org/license/MIT](https://opensource.org/license/MIT). |
197 | 103 |
|
198 | | -## License |
| 104 | +## Contributing |
199 | 105 |
|
200 | | -This repository is licensed under the MIT license, see [LICENSE]( ./LICENSE ). |
201 | | -Unless attributed otherwise, everything in this repository is under the MIT license. |
| 106 | +- This software is open source, but its development is not open. |
| 107 | +- This software is essentially provided as open source software on an “AS IS” (in its current state) basis. |
| 108 | +- No free support is available for this software. |
| 109 | +- Requests for bug fixes and corrections of typographical errors are always accepted; however, requests for additional features will be subject to our internal guidelines. For further details, please refer to the [Contribution Guidelines](https://github.com/rt-net/.github/blob/master/CONTRIBUTING.md). |
202 | 110 |
|
203 | 111 | ### Acknowledgements |
204 | 112 |
|
205 | | -* [CIR-KIT/fourth_robot_pkg]( https://github.com/CIR-KIT/fourth_robot_pkg ) |
206 | | - * author |
207 | | - * RyodoTanaka |
208 | | - * maintainer |
209 | | - * RyodoTanaka |
210 | | - * BSD ([BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause)) |
211 | | - * See [package.xml](https://github.com/CIR-KIT/fourth_robot_pkg/blob/indigo-devel/fourth_robot_control/package.xml) for details. |
212 | | -* [yujinrobot/kobuki]( https://github.com/yujinrobot/kobuki ) |
213 | | - * authors |
214 | | - * Daniel Stonier |
215 | | - * Younghun Ju |
216 | | - * Jorge Santos Simon |
217 | | - * Marcus Liebhardt |
218 | | - * maintainer |
219 | | - * Daniel Stonier |
220 | | - * BSD ([BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause)) |
221 | | - * See [package.xml](https://github.com/yujinrobot/kobuki/blob/melodic/kobuki/package.xml) for details。 |
| 113 | +This repository is developed based on files from the following repository. |
| 114 | + |
| 115 | +- [CIR-KIT/fourth_robot_pkg]( https://github.com/CIR-KIT/fourth_robot_pkg ) |
| 116 | + - author |
| 117 | + - RyodoTanaka |
| 118 | + - maintainer |
| 119 | + - RyodoTanaka |
| 120 | + - BSD ([BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause)) |
| 121 | + - For details, see [package.xml](https://github.com/CIR-KIT/fourth_robot_pkg/blob/indigo-devel/fourth_robot_control/package.xml). |
| 122 | +- [yujinrobot/kobuki]( https://github.com/yujinrobot/kobuki ) |
| 123 | + - authors |
| 124 | + - Daniel Stonier |
| 125 | + - Younghun Ju |
| 126 | + - Jorge Santos Simon |
| 127 | + - Marcus Liebhardt |
| 128 | + - maintainer |
| 129 | + - Daniel Stonier |
| 130 | + - BSD ([BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause)) |
| 131 | + - For details, see [package.xml](https://github.com/yujinrobot/kobuki/blob/melodic/kobuki/package.xml). |
0 commit comments