DrawingProcess
๋“œํ”„ DrawingProcess
DrawingProcess
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (964)
    • Profile & Branding (22)
      • Career (15)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (97)
      • Book (66)
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • ์ธ์ƒ์„ ์‚ด๋ฉด์„œ (64)
      • ๋‚˜์˜ ์ทจ๋ฏธ๋“ค (7)
      • ๋‚˜์˜ ์ƒ๊ฐ๋“ค (42)
      • ์—ฌํ–‰์„ ๋– ๋‚˜์ž~ (10)
      • ๋ถ„๊ธฐ๋ณ„ ํšŒ๊ณ  (5)

๊ฐœ๋ฐœ์ž ๋ช…์–ธ

โ€œ ๋งค์ฃผ ๋ชฉ์š”์ผ๋งˆ๋‹ค ๋‹น์‹ ์ด ํ•ญ์ƒ ํ•˜๋˜๋Œ€๋กœ ์‹ ๋ฐœ๋ˆ์„ ๋ฌถ์œผ๋ฉด ์‹ ๋ฐœ์ด ํญ๋ฐœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ผ.
์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด๋Ÿฐ ์ผ์ด ํ•ญ์ƒ ์ผ์–ด๋‚˜๋Š”๋ฐ๋„ ์•„๋ฌด๋„ ๋ถˆํ‰ํ•  ์ƒ๊ฐ์„ ์•ˆ ํ•œ๋‹ค. โ€

- Jef Raskin

๋งฅ์˜ ์•„๋ฒ„์ง€ - ์• ํ”Œ์ปดํ“จํ„ฐ์˜ ๋งคํ‚จํ† ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋„

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
DrawingProcess

๋“œํ”„ DrawingProcess

[ROS] gazebo clearpath jackal ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡ ์‚ฌ์šฉํ•˜๊ธฐ(velodyne vlp16 3d lidar)
Study: Robotics(Robot)/Robot: ROS(Robot Operating Sytem)

[ROS] gazebo clearpath jackal ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡ ์‚ฌ์šฉํ•˜๊ธฐ(velodyne vlp16 3d lidar)

2023. 11. 13. 12:09
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” 'gazebo clearpath jackal ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡ ์‚ฌ์šฉํ•˜๊ธฐ(velodyne vlp16 3d lidar)'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
gazebe์—์„œ clearpath jackal ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡๋ฅผ ์„ค์ •ํ•˜์—ฌ ํ•„์š”ํ•œ ์„ผ์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. clearpath jackal: Launch (velodyne vlp16 3d lidar)

๋จผ์ € ์„ค์น˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์„ผ์„œ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ROS ๋ฒ„์ „์€ noetic ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ, ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ์„ค์น˜์‹œ ํ•ด๋‹น ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์„ค์น˜ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

1) INSTALLATION

jackal ํŒจํ‚ค์ง€ ์„ค์น˜

sudo apt-get install ros-noetic-jackal-simulator ros-noetic-jackal-desktop ros-noetic-jackal-nav

jackal ์ปค์Šคํ…€ ํŒจํ‚ค์ง€ ์„ค์น˜(control, navigation, description, ...)

cd ~/catkin_ws/src/
git clone https://github.com/DrawingProcess/jackal

2) LAUNCH GAZEBO

i) base robot

roslaunch jackal_gazebo jackal_world.launch

ii) base + 2d laser

roslaunch jackal_gazebo jackal_world.launch config:=front_laser

iii) base + 3d lidar

roslaunch jackal_gazebo jackal_world.launch config:=3d_lidar

3) LAUNCH RVIZ

You can using the following launch invocation to start rviz with a pre-cooked configuration suitable for visualizing any standard Jackal config:

roslaunch jackal_viz view_robot.launch

+ VISUALIZING SENSORS

click the “Add” button, then select the “Topics” tab, and then select the front/scan topic:

SLAM ๋ฐ navigation ๊ด€๋ จ ๋‚ด์šฉ์€ ๊ณต์‹ ๋ฌธ์„œ์ธ '[clearpath] clearpath jackal'๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2. clearpath jackal: Config (velodyne vlp16 3d lidar)

๋จผ์ € jackal์—์„œ ์ œ๊ณตํ•˜๋Š” ์„ผ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ์„ผ์„œ๋“ค์˜ parameter๋Š” '[clearpath] JACKAL_DESCRIPTION PACKAGE'์— ์ •์˜๋˜์–ด์žˆ์œผ๋‹ˆ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ถ€๋ถ„ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1) ์„ผ์„œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง์ ‘ ๋ณ€๊ฒฝ

๊ธฐ๋ณธ์ ์ธ jackal ๋ชจ๋ธ์€ jackal.urdf.xacro์— ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ถ”๊ฐ€์ ์ธ ์„ผ์„œ๋Š” accessories.urdf.xacro์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์ธ ์„ผ์„œ ์„ค์ • ๋ฐ ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด accessories.urdf.xacro ํŒŒ์ผ์„ ํ™•์ธํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • jackal.urdf.xacro ์œ„์น˜: jackal/jackal_description/urdf/jackal.urdf.xacro
  • accessories.urdf.xacro ์œ„์น˜: jackal/jackal_description/urdf/accessories.urdf.xacro

jackal.urdf.xacro ๋‚ด๋ถ€์—์„œ accessories.urdf.xacro๋ฅผ ์ฝ์–ด๋“ค์ด๊ธฐ์— accessories.urdf.xacro ํŒŒ์ผ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ์„ผ์„œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  <!-- Optional standard accessories, including their simulation data. The rendering
       of these into the final description is controlled by optenv variables, which
       default each one to off.-->
  <xacro:include filename="$(find jackal_description)/urdf/accessories.urdf.xacro" />

์ด์ œ 3D ๋ผ์ด๋‹ค ์„ผ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. accessories.urdf.xacro ํŒŒ์ผ์„ ํ™•์ธํ•ด๋ณด๋ฉด JACKAL_LASER_3D์ด ์ •์˜ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ 1๋กœ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด 3D lidar๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  <!--
    Add a 3D lidar sensor.  By default this is a Velodyne VLP16 but can be changed with the
    JACKAL_LASER_3D_MODEL environment variable. Valid model designations are:
    - vlp16 (default)  :: Velodyne VLP16
    - vlp32e           :: Velodyne HDL-32E
  -->
  <xacro:if value="$(optenv JACKAL_LASER_3D 0)">
    <xacro:property name="mount" value="$(optenv JACKAL_LASER_3D_MOUNT mid)" />
    <xacro:property name="topic" value="$(optenv JACKAL_LASER_3D_TOPIC mid/points)" />
    <xacro:property name="tower" value="$(optenv JACKAL_LASER_3D_TOWER 1)" />
    <xacro:property name="prefix" value="$(optenv JACKAL_LASER_3D_PREFIX ${mount})" />
    <xacro:property name="parent" value="$(optenv JACKAL_LASER_3D_PARENT ${mount}_mount)" />
    <xacro:property name="lidar_3d_model" value="$(optenv JACKAL_LASER_3D_MODEL vlp16)" />
    <!-- Velodyne VLP16 -->
    <xacro:if value="${lidar_3d_model == 'vlp16'}">
      <xacro:vlp16_mount topic="${topic}" tower="${tower}" prefix="${prefix}" parent_link="${parent}" >
        <origin xyz="$(optenv JACKAL_LASER_3D_OFFSET 0 0 0)" rpy="$(optenv JACKAL_LASER_3D_RPY 0 0 0)" />
      </xacro:vlp16_mount>
    </xacro:if>
    <!-- Velodyne HDL-32E -->
    <xacro:if value="${lidar_3d_model == 'hdl32e'}">
      <xacro:hdl32e_mount topic="${topic}" tower="${tower}" prefix="${prefix}" parent_link="${parent}" >
        <origin xyz="$(optenv JACKAL_LASER_3D_OFFSET 0 0 0)" rpy="$(optenv JACKAL_LASER_3D_RPY 0 0 0)" />
      </xacro:hdl32e_mount>
    </xacro:if>
  </xacro:if>

๋งค์šฐ ๊ฐ„๋‹จํ•˜์ฃ ? ๊ทธ๋Ÿฐ๋ฐ ํ•ด๋‹น ๋ฐฉ๋ฒ•์€ ๋‚˜์ค‘์— ์ด๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์„ ์ผ์ผ์ด ๋‹ค์‹œ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ config ํŒŒ์ผ์„ ๋‘์–ด config ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2) config ๊ฐ’ ์ฝ์–ด์˜ค๊ธฐ

์•ž์„œ 2d lidar ๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ๋Š” ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

roslaunch jackal_gazebo jackal_world.launch config:=front_laser

์—ฌ๊ธฐ์„œ front_laser config๋Š” ๋ญ˜๊นŒ์š”? find command๋กœ ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ์˜ ๊ฒฝ๋กœ์— ํ•ด๋‹น ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

~/catkin_ws/src/jackal$ find . | grep front_laser
./jackal_description/urdf/configs/front_laser
./jackal_description/urdf/configs/front_laser.bat

์ดํ›„ ๊ฐ ํŒŒ์ผ์„ ํ™•์ธํ•ด๋ณด๋ฉด, ์•ž์„œ accessories.urdf.xacro ํŒŒ์ผ์— <xacro:if value="$(optenv JACKAL_LASER 0)">์ฒ˜๋Ÿผ ์ •์˜ ๋˜์–ด์žˆ๋˜ optenv ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ์ผ์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

~/catkin_ws/src/jackal$ cat ./jackal_description/urdf/configs/front_laser.bat
@echo off

REM The front_laser configuration of Jackal is sufficient for
REM basic gmapping and navigation. It is mostly the default
REM config, but with a SICK LMS100 series LIDAR on the front,
REM pointing forward.

set JACKAL_LASER=1

๋”ฐ๋ผ์„œ ์ด์™€ ์œ ์‚ฌํ•˜๊ฒŒ 3d_lidar, 3d_lidar.bat ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ nano jackal/jackal_description/urdf/configs/3d_lidar

# The front_laser configuration of Jackal is sufficient for
# basic gmapping and navigation. It is mostly the default
# config, but with a SICK LMS100 series LIDAR on the front,
# pointing forward.

JACKAL_LASER_3D=1
JACKAL_LASER_3D_TOPIC="/velodyne_points"
$ nano jackal/jackal_description/urdf/configs/3d_lidar.bat

@echo off

REM The front_laser configuration of Jackal is sufficient for
REM basic gmapping and navigation. It is mostly the default
REM config, but with a SICK LMS100 series LIDAR on the front,
REM pointing forward.

set JACKAL_LASER_3D=1
set JACKAL_LASER_3D_TOPIC="/velodyne_points"

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•˜๋ฉด 3d lidar๊ฐ€ ์ ์šฉ๋œ ๋ชจ๋ธ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

roslaunch jackal_gazebo jackal_world.launch config:=3d_lidar

์ฐธ๊ณ 

  • [clearpath] clearpath jackal: https://www.clearpathrobotics.com/assets/guides/noetic/jackal/simulation.html
  • [clearpath] clearpath jackal navigation: https://www.clearpathrobotics.com/assets/guides/noetic/jackal/cartographer.html
  • [clearpath] JACKAL_DESCRIPTION PACKAGE: https://www.clearpathrobotics.com/assets/guides/noetic/jackal/description.html
  • [github] DrawingProcess/jackal: https://github.com/DrawingProcess/jackal

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Study: Robotics(Robot) > Robot: ROS(Robot Operating Sytem)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ROS] ROS 2 Humble & Gazebo 11 ์„ค์น˜ ๋ฐ ์„ธํŒ…  (0) 2024.03.17
[ROS] apt ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์™€ buildํ•œ ํŒจํ‚ค์ง€(catkin, colcon) ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉ?  (0) 2023.11.10
[ROS] ROS URDF vs. Gazebo SDF: Link Pose, Joint Pose, Visual & Collision  (0) 2023.10.27
[ROS] ROS TF ์ขŒํ‘œ๊ณ„ ๋ฐ ๋ณ€ํ™˜  (0) 2023.10.26
[ROS] ROS rosrun ์‹คํ–‰ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ(python, cpp)  (0) 2023.10.12
    'Study: Robotics(Robot)/Robot: ROS(Robot Operating Sytem)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ROS] ROS 2 Humble & Gazebo 11 ์„ค์น˜ ๋ฐ ์„ธํŒ…
    • [ROS] apt ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์™€ buildํ•œ ํŒจํ‚ค์ง€(catkin, colcon) ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉ?
    • [ROS] ROS URDF vs. Gazebo SDF: Link Pose, Joint Pose, Visual & Collision
    • [ROS] ROS TF ์ขŒํ‘œ๊ณ„ ๋ฐ ๋ณ€ํ™˜
    DrawingProcess
    DrawingProcess
    ๊ณผ์ •์„ ๊ทธ๋ฆฌ์ž!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”