forked from OUXT-Polaris/design_paper_2022
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tex
301 lines (229 loc) · 13.7 KB
/
main.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
\documentclass[lettersize,journal]{IEEEtran}
\usepackage{amsmath,amsfonts}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{array}
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
\usepackage{textcomp}
\usepackage{stfloats}
\usepackage{url}
\usepackage{verbatim}
\usepackage{graphicx}
\usepackage{here}
\hyphenation{op-tical net-works semi-conduc-tor IEEE-Xplore}
\begin{document}
\title{Technical Design Report : OUXT Polaris 2025}
\author{
Ryohei Ohnishi, Kyushu Institute of Technology. \\ \and
Kenta Futami, Kyushu Institute of Technology. \\ \and
Reo Fujioka, Kyushu Institute of Technology. \\ \and
Fumiya Matsuzaki, Kyushu Univ. \\ \and
Masato Kobayashi, Osaka Univ.
}
% The paper headers
\markboth{Maritime RobotX Challenge 2022}%
{Shell \MakeLowercase{\textit{et al.}}: A Sample Article Using IEEEtran.cls for IEEE Journals}
% \IEEEpubid{0000-0000/00\$00.00~\copyright~2021 IEEE}
% Remember, if you use this you must call \IEEEpubidadjcol in the second
% column for its text to clear the IEEEpubid mark.
\maketitle
\begin{abstract}
OUXT Polaris is a team participating in the RoboBoat and Maritime RobotX Challenge based at the Kyushu Institute of Technology.
OUXT Polaris is actively involved in open-source activities and actively publishes its development products, including hardware and software.
OUXT Polaris had been working on the RobotX 2024 but had to give up the Maritime RobotX Challenge due to the rising cost of transportation. However, the Mini-V, which was developed as a smaller version of the WAM-V hardware used in the RobotX Challenge, was redesigned and used as the hardware for RoboBoat 2024.
This Technical Design Report describes the hardware configuration and software of Mini-V.
\end{abstract}
\begin{IEEEkeywords}
Maritime systems, Robotics, Unmanned surface vehicle
\end{IEEEkeywords}
\section{Hardware}
\begin{figure}[H]
\begin{center}
\scalebox{0.2}{
\includegraphics{figure/mini_v_overview.eps}
}
\end{center}
\caption{Mini-V Hardware}
\label{fig:miniv}
\end{figure}
\subsection{framework}
Mini-V uses a MISUMI aluminum frame for the framework and is designed for easy mounting of various sensors.
\begin{figure}[H]
\begin{center}
\scalebox{0.05}{
\includegraphics{figure/miniv_framework.png}
}
\end{center}
\caption{Framework of Mini-V}
\label{fig:miniv}
\end{figure}
A LiDAR and camera are mounted in front.
This mount is manufactured by sheet metal fabrication, but can be easily reproduced by MISUMI's Meivy service.
A Blue Robotics T200 compatible motor is mounted at the rear to provide differential turning motion.
\subsection{concept}
\begin{enumerate}
\item {\it Easy to carry}:
Small enough to be transported by one person in a large suitcase
\item {\it Sensor Compatibility}:
Have enough buoyancy margin to carry the same sensors as WAM-V, which is about the size of a car.
\item {\it Actuator Compatibility}:
Compatible with WAM-V in terms of actuator layout.
\item {\it Software Compatibility}:
Embedded middleware and computer configuration to allow the same software to be used with WAM-V and Mini-V
\end{enumerate}
OUXT Polaris is competing in the Maritime RobotX Challenge as well as RoboBoat, and its greatest requirement is that Mini-V act as a compatible machine for WAM-V, which requires half a day for assembly alone.
The Mini-V can be transported by one person and assembled in a few minutes, making it a very inexpensive piece of hardware to experiment with.
The largest component, the Hull, can be folded for extremely compact storage.
The vessel's communication network is also Ethernet-based, and the protocol is unified with WAM-V.
\subsection{sensor}
Mini-V is equipped with the same type of sensor as WAM-V.
The types of sensors installed are
\begin{enumerate}
\item {\it Camera}
\item {\it Velodyne VLP16}
\item {\it IMU}
\item {\it GNSS}
\end{enumerate}
IMU/GNSS are used for self-position estimation by Kalman filter.
Of these, IMU/GNSS is used for self-position estimation using the Kalman filter, while Velodyne VLP16 and the camera are used for sensing the external world.
\subsection{circuit}
All circuits are built into the black case of the main unit except for the emergency stop system.
\begin{figure}[H]
\begin{center}
\scalebox{0.05}{
\includegraphics{figure/internal_hardware_mount.jpg}
}
\end{center}
\caption{Internal Hardware Mount}
\label{fig:internal_hardware_mount}
\end{figure}
The batteries installed in the Mini-V are all Makita BL1860B.
The reason for choosing this model number is that it has enough power to keep Mini-V running for more than one hour, yet it can be carried on board an airplane, making it easy to transport.
The circuitry used in the Mini-V is available on this page.(\url{https://ouxt-polaris.github.io/ouxt_automation/circuit/computer_sensor_board/computer_sensor_board/})
Circuit design is done by kicad, and an automation tool called kibot is used to automatically perform rule checking, Gerber generation, BOM generation, and other tasks by simply pushing the circuit data to GitHub.
Ordering is also automated, and with the push of a button, components can be purchased at Akizuki Denshi Tsusho, a Japanese electronic components retailer.
Three circuits were manufactured for the Mini-V.
The hardware is modular, mounted on a 9x12 cm rectangle locked with arrow-shaped components.
All mounts are constructed with a 3D printer and can be repaired in the event of on-site damage.
\subsubsection{Computer Sensor Board}
\begin{figure}[H]
\begin{center}
\scalebox{0.05}{
\includegraphics{figure/computer_sensor_board.png}
}
\end{center}
\caption{Computer Sensor Board}
\label{fig:miniv_computer_sensor_board}
\end{figure}
The Computer Sensor Board supplies power to the Jetson AGX Orin computer and other sensors mounted on the Mini-V.
This board accepts 12V DC as input and is equipped with a MOSFET to prevent reverse connection to prevent damage to the computer and sensors if accidentally connected.
\subsubsection{Mini-V Motor Controller Board}
\begin{figure}[H]
\begin{center}
\scalebox{0.05}{
\includegraphics{figure/miniv_motor_controller_board.png}
}
\end{center}
\caption{Mini-V EStop Board}
\label{fig:miniv_motor_controller_board}
\end{figure}
The Mini-V motor Controller Board supplies power and signals to the Blue Robotics T200 Basic ESC to control the motor.
This board has a function to accept an emergency stop signal and receives a 3.3V emergency stop release signal from the emergency stop board.
If the voltage of this emergency stop release signal falls below 1.2V, the relay that supplies power to the Blue Robotics T200 Basic ESC is shut down and the hull is safely brought to an emergency stop.
This board receives the battery output directly to the board.
This is because the drive voltage of the Blue Robotics T200 Basic ESC matches the voltage of the Makita BL1860B, so there is no need to use a DC/DC converter to keep the voltage constant.
\subsubsection{Mini-V Estop board}
The Mini-V estop board sends an emergency stop signal to the Mini-V motor Controller Board.
This board consists of two elements: a teensy 4.1 controller for controlling LED tapes and a stop signal output circuit composed only of circuit elements.
When the emergency stop button is not pressed, a voltage of 3.3 V is applied to pin 33 in the circuit diagram, and a 3.3 V emergency stop release signal is emitted from J7/J8.
Pin 33 is pulled down so that when the emergency stop button is pressed, the voltage on pin 33 goes to 0V and the voltage of the emergency stop release signal goes to 0V.
The teensy controller that controls the LED reads the voltage on pin 33 and changes the color of the LED.
This enables both the emergency stop and its status to be displayed without software intervention.
\begin{figure}[H]
\begin{center}
\scalebox{0.05}{
\includegraphics{figure/miniv_estop_board.png}
}
\end{center}
\caption{Mini-V EStop Board}
\label{fig:miniv_estop_board}
\end{figure}
\section{Software}
\subsection{Embedded middleware}
Mini-V is designed with compatibility with WAM-V as the top priority.
Therefore, Mini-V must be able to run the software implemented for WAM-V with minimal parameter changes.
However, the circuit configuration of the WAM-V differs significantly from that of the Mini-V, as the WAM-V motor has a 1200W output and uses the STM32F767ZI microcontroller.
OUXT Polaris has developed a mechanism to automatically generate protocol buffers messages from ROS 2 message types, and has succeeded in automatically generating a structure that can be used in Arduiono and STM Cube IDE using nanopb, a protobuf implementation for microcontrollers. The communication is ROS 2-dependent.
Since there is no ROS 2 dependence in this communication, it is possible to use this communication protocol for teleoperation systems, etc., to enable teleoperation independent of the ROS 2 system.
This embedded middleware was accepted for an oral session at ROSCONJP 2024, where team members Matsuzaki and Futami gave a presentation.
\url{https://roscon.jp/2024/presentations/06.pdf}
\url{https://vimeo.com/showcase/11452054/video/1029114561}
By using protolink, communication using schema definitions can be easily performed on multiple platforms, including STM32-based microcontrollers and Arduino.
\subsection{ROS 2 Software}
\begin{figure}[H]
\begin{center}
\scalebox{0.2}{
\includegraphics{figure/arch_nav.eps}
}
\end{center}
\caption{Whole Architecture of Navigation System}
\label{fig:arch_nav}
\end{figure}
OUXT Polaris uses ROS 2 as its middleware.
OUXT Polaris also releases all developed software under the Apache License.
\url{https://ouxt-polaris.github.io/ouxt_automation/packages/}
The software architecture uses a general architecture in which processing is performed in the following order: self-position estimation, object recognition, path planning, and control.
This structure allows multiple development members to divide and take charge of their respective tasks.
\subsubsection{Localization}
An extended Kalman filter is used for self-position estimation.
The extended Kalman filter employs a six-degree-of-freedom Kalman filter with quaternions to achieve robust self-position estimation against hull motion.
\subsubsection{Perception}
For object recognition, a hybrid approach is used that combines image recognition using Detic and rule-based clustering.
Detic is a type of Vision and Language model capable of recognizing 20,000 object types.
OUXT Polaris uses Detic to extract object regions from images and performs sensor fusion with the clustering results of LiDAR point clouds to obtain object information.
\begin{figure}[H]
\begin{center}
\scalebox{0.2}{
\includegraphics{figure/object_detection.jpg}
}
\end{center}
\caption{Object Detection with detic and point painting.}
\label{fig:arch_nav}
\end{figure}
The integration of Lidar and images is achieved by overlaying Detic object recognition results on point cloud data using an algorithm called point painting.
\begin{figure}[H]
\begin{center}
\scalebox{0.2}{
\includegraphics{figure/depth_anything.png}
}
\end{center}
\caption{Run depth anything in Gazebo environment.}
\label{fig:arch_nav}
\end{figure}
In addition, the currently installed VLP16 has insufficient point cloud density, and in some cases, clustering fails depending on the clustering method.
As a countermeasure, we are considering using Depth Anything to perform depth estimation whose scale is unknown, and then estimating the scale based on the VLP16 point cloud, effectively using the camera as a dense colored LiDAR.
\subsection{Planning}
Path planning is divided into two components: the behavior tree, which determines the goal point, and the module, which determines the route.
The behavior tree specifies the “next goal point” based on object recognition results.
One of the issues currently discovered is the possibility of the vessel running out of control if there is an error in the object recognition results, so it is necessary to adopt a more robust algorithm in the future.
The path planner consists of a smooth path and velocity planning module using Hermite curves.
The path planner draws a smooth path that does not contact any obstacles until the goal point, and performs velocity planning in the Frenet coordinate system defined on the path.
The velocity planning module is designed to be scalable in the future, so that two independent ROS nodes can plan the velocity for each constraint condition and then compile them into a velocity plan that satisfies all the constraint conditions.
\begin{figure}[H]
\begin{center}
\scalebox{0.5}{
\includegraphics{figure/example_planner.png}
}
\end{center}
\caption{Path planning with WAM-V}
\label{fig:planning}
\end{figure}
We are usually developing with WAM-V for the Maritime RobotX Challenge. Therefore, we use the WAM-V simulation model for testing, but the exact same algorithm can be used for Mini-V due to the compatibility of the actuators and sensors.
\subsection{Control}
The control of the hull is implemented with a simple PID control system, considering the hull as a Diff Drive robot.
The reason why this system was adopted is that there are not enough sensors to model the hull sway and wind, and there is a possibility that a lot of noise could get on the hull.
We adopted the simplest algorithm because we thought it would be impossible to achieve highly accurate control in any way.
\section{Conclusion}
OUXT Polaris participated in RoboBoat 2025 by utilizing the Mini-V hardware it had previously developed for the Maritime RobotX Challenge.
In the future, OUXT Polaris would like to make more use of this hardware and conduct various experiments.
\end{document}