PinkWink 대표님께서 이어달리기 형태로 빌려오신 벨로다인 3D라이다
가격은 무려 700만원이라고 합니다.. 이 라이다를 가지고 3D SLAM을 해보는 스터디를 만들어보자고 말씀해주셔서
약 3주간 벨로다인 라이다를 만지는 스터디가 만들어질 것 같습니다.
약 2주동안은 Gazebo상에서 3D SLAM을 하는 것을 목표로하고
나머지 2주동안은 실제 LiDAR를 가지고 뛰어다니면서 SLAM을 하게될것같습니다.
일단 저는 Gazebo를 활용하는 포지션을 맡았습니다.
그리고 추가로 개인적으로 터틀봇에 벨로다인 라이다를 붙여보고 시뮬레이션을 해보도록하겠습니다.
이 글은 PinkWink님의 스터디 교육자료를 바탕으로 작성되었습니다.
우선 ROS2 Humble버전이 필요합니다.
다음 글에서 설치할 수 있습니다.
이 글은 PinkWink 대표님께서 직접만든 Minibot에서 velodyin을 장착하는 방법을 다루고자합니다.
(터틀봇에도 붙여보고 싶은데, 연구를 해보도록하겠습니다.)
공통적으로 설치해주어야하는 것입니다.
sudo apt install ros-humble-velodyne*
sudo apt install mrpt-apps
velodyne-view
이렇게 설치가 완료되면
설치가 잘되었는지 확인해보겠습니다.
Humble환경 불러오기
ros2 launch velodyne_description example.launch.py
다음을 입력했을 때 실행이되면 됩니다. 그러나 Gazebo는 실행이 되질 않습니다.
이러면 일단 벨로다인 라이다는 잘 설치가되었습니다.
Minibot에서 velodyin장착하기
https://github.com/PinkWink/pinklab_minibot_robot
다음의 파일을 git clone합니다. 현재 로봇에는 2D 라이다가 달려있기 때문에 이를 벨로다인 라이다로 바꿔주도록 합시다.
minibot_description의 urdf의 minibot_gazebo.urdf.xacro 파일을 수정하도록 합시다.
우선 2D 라이다를 모두 주석처리합니다.
<!-- --> 로 처리할 수 있습니다.
그리고 다음을 추가합니다.
<gazebo reference="${prefix}laser_link">
<sensor type="gpu_ray" name="velodyne-VLP16">
<pose>0 0 0.1 0 0 0</pose>
<visualize>true</visualize>
<update_rate>10</update_rate>
<ray>
<scan>
<horizontal>
<samples>440</samples>
<resolution>1</resolution>
<min_angle>-3.14159265</min_angle>
<max_angle>3.14159265</max_angle>
</horizontal>
<vertical>
<samples>16</samples>
<resolution>1</resolution>
<min_angle>-0.261799388</min_angle>
<max_angle> 0.261799388</max_angle>
</vertical>
</scan>
<range>
<min>0.3</min>
<max>131</max>
<resolution>0.001</resolution>
</range>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.0</stddev>
</noise>
</ray>
<plugin name="gazebo_ros_laser_controller" filename="libgazebo_ros_velodyne_laser.so">
<ros>
<!-- <namespace>/velodyne</namespace> -->
<remapping>~/out:=/velodyne_points</remapping>
</ros>
<!-- <tf_prefix>''</tf_prefix> -->
<frame_name>laser_link</frame_name>
<organize_cloud>false</organize_cloud>
<min_range>0.9</min_range>
<max_range>130.0</max_range>
<gaussian_noise>0.008</gaussian_noise>
<output_type>sensor_msgs/msg/PointCloud2</output_type>
</plugin>
</sensor>
</gazebo>
다음으로 설정하고, colcon build하고
minibot환경을 불러온 후에 가제보를 실행합니다.
ros2 launch minibot_bringup bringup_robot_gazebo.launch.py world_name:=simple_building.world
다음처럼 보이면 됩니다. 그러면 한 번 움직여 봐야겠죠.
터미널을 두 개 더 켜봅시다.
(모두 minibot 환경을 불러와야합니다)
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r cmd_vel:=base_controller/cmd_vel_unstamped
rviz2
우선 Rviz가 실행되면 토픽을 받아야한다. Global Option
base_link로 변경하고
add에서
다음의 토픽을 구독하면 ladar가 표시된다.
나의 경우는 points로 바꿨다 그리고 컬러도 다음처럼 변경하면 이뻐진다..
또한 다음의 토픽도 구독을 한다.
그리고 다음처럼 변경하면
잘 나온다.. 단점이 1m이내의 라이다 탐지결과는 나오지 않는다.
그리고 이거로 움직이면서 봐도 된다.
이 이후는 못했습니다. 벨로다인 라이다가 사라져버렸어요..
'공부#Robotics#자율주행 > (ROS2)주행로봇' 카테고리의 다른 글
실제 로봇의 운영체제 설치하고, 초기 세팅하기 (0) | 2023.03.08 |
---|---|
URDF로 만든 로봇을 GAZEBO상에서 컨트롤 하기 SLAM (2/2) (0) | 2023.02.10 |
URDF로 만든 로봇을 GAZEBO상에서 컨트롤 하기 SLAM (1/2) (0) | 2023.02.09 |
URDF, XACRO 마스터 하기 ! (ADDBOT Rviz에서 구현하기) (2/2) (0) | 2023.02.06 |
URDF, XACRO 마스터 하기 ! (ADDBOT Rviz에서 구현하기) (1/2) (1) | 2023.02.06 |