PinkWink 대표님께서 이어달리기 형태로 빌려오신 벨로다인 3D라이다
가격은 무려 700만원이라고 합니다.. 이 라이다를 가지고 3D SLAM을 해보는 스터디를 만들어보자고 말씀해주셔서
약 3주간 벨로다인 라이다를 만지는 스터디가 만들어질 것 같습니다.
약 2주동안은 Gazebo상에서 3D SLAM을 하는 것을 목표로하고
나머지 2주동안은 실제 LiDAR를 가지고 뛰어다니면서 SLAM을 하게될것같습니다.
일단 저는 Gazebo를 활용하는 포지션을 맡았습니다.
그리고 추가로 개인적으로 터틀봇에 벨로다인 라이다를 붙여보고 시뮬레이션을 해보도록하겠습니다.
이 글은 PinkWink님의 스터디 교육자료를 바탕으로 작성되었습니다.
PinkWink
한 변두리 공학도의 블로그입니다. 재미있어 보이는 것들을 모두 기초스럽게 접근하는 블로그이며... 그보다 더욱 소중한 우리 아가 미바뤼의 발자취를 남겨두는 블로그이기도 합니다.
pinkwink.kr
우선 ROS2 Humble버전이 필요합니다.
(실무리눅스) 12. 우분투 22.04에 ROS2 Humble 설치하고 rviz와 gazebo까지 설치하기
https://docs.ros.org/en/humble/Installation.html Installation — ROS 2 Documentation: Humble documentation Binary packages Binaries are only created for the Tier 1 operating systems listed in REP-2000. Given the nature of Rolling, this list may be updated
kimbrain.tistory.com
다음 글에서 설치할 수 있습니다.
이 글은 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
GitHub - PinkWink/pinklab_minibot_robot: PinkLab MiniBot ROS2 Packages
PinkLab MiniBot ROS2 Packages. Contribute to PinkWink/pinklab_minibot_robot development by creating an account on GitHub.
github.com
다음의 파일을 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 |