Openmanipulator_Setup - kairproject/kair_algorithms_draft GitHub Wiki

Setup

๊ธฐ๋ณธ์ ์ธ OpenManipulator ์ž‘๋™ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Hardware ์—ฐ๊ฒฐ ๋ฐ ์—ฐ๊ฒฐ ์ฒดํฌ

Hardware ๊ฐ ๋ถ€์œ„ ์‚ฌ์ง„

Manipulator U2D2 Board

Hardware ์„  ์—ฐ๊ฒฐ

  • U2D2(๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ)๊ณผ ์—ฐ๊ฒฐ๋  USB๋ฅผ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์— ์—ฐ๊ฒฐํ•œ๋‹ค.(์—ฐ๊ฒฐ๋˜๋ฉด ๋ถ„ํ™์ƒ‰ ๋ถˆ์ด ๋“ค์–ด์˜จ๋‹ค.)
  • ๋ณด๋“œ(ํŒŒ๋ž€์ƒ‰ ๋„ค๋ชจ)์— ์—ฐ๊ฒฐ๋  ๋‹จ์ž๋ฅผ ์ฝ˜์„ผํŠธ์— ์—ฐ๊ฒฐํ•œ๋‹ค.
  • ์ „์›์€ ์ผœ์ง€ ์•Š๋Š”๋‹ค.
  • ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฐ๊ฒฐํ•œ๋‹ค.
    manipulator_setting

USB ์—ฐ๊ฒฐ ์ฒดํฌ

[๋™ํ˜„๋‹˜ Mixcell ์—ฐ๊ฒฐ์ฒดํฌ ํ•˜๋Š” ์ด์œ  ์ ์–ด์ฃผ์„ธ์š”.]

  1. Mixcell์„ ์ผœ์„œ ํ˜„์žฌ USB๊ฐ€ ์—ฐ๊ฒฐ๋œ ์œ„์น˜๋ฅผ ํ™•์ธํ•œ๋‹ค.

    • Terminal์— mixcell ๋ช…๋ น ์‹คํ–‰ (์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.) mixcell
  2. BAURATE=1000000, MAX. ID=100์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

  3. ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ PORTS๋ฅผ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œ SCAN ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค. mixcell_setup

    • ์‹คํ–‰ ๊ฒฐ๊ณผ (์•„๋ž˜ Error message๋Š” ๋ฌด์‹œํ•ด๋„ ๋œ๋‹ค. (ํŒŒ๋ž€์ƒ‰ ๋„ค๋ชจ))
์—ฐ๊ฒฐ๋œ USB์ผ ๋•Œ ์—ฐ๊ฒฐ๋œ USB๊ฐ€ ์•„๋‹ ๋•Œ

[๋™ํ˜„๋‹˜ ์•„๋ž˜ ์ž‘์—… ์ฒดํฌ ํ•˜๋Š” ์ด์œ  ์ ์–ด์ฃผ์„ธ์š”.]

  1. ~/catkin_ws/src/modud_kair_control/scripts path์˜ ํŒŒ์ผ๋“ค ์ค‘ pos_read_write.py ํŒŒ์ผ์—์„œDEVICENAME='dev/ttyUSB0'์™€ ๊ฐ™์ด SCAN์ด ๋˜๋Š” PORT๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. pos_read_write_test
    • ์„ฑ๊ณต ์‹œ pos_read_write_test_success

์‹คํ–‰

  1. ๋ณด๋“œ ์ „์›์„ ์ผ ๋‹ค. board_power_on

  2. terminal์„ ์‹คํ–‰ํ•œ๋‹ค. (๊ฐ ๋ช…๋ น๋งˆ๋‹ค ๊ฐœ๋ณ„์ ์ธ terminal์— ์‹คํ–‰ํ•œ๋‹ค.)

    • roscore ์‹คํ–‰. roscore
    • rosrun modud_kair_control pos_read_write.py ์‹คํ–‰.(์ด ๋•Œ, ์ฃผ์˜ํ•  ์ ์€ ์ผฐ์„ ๋•Œ์˜ ์œ„์น˜๋กœ manipulator๊ฐ€ ๊ณ ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์†์œผ๋กœ ๋ฐ›์ณ์ค€๋‹ค.) manipulator_setting rosrun modud_kair_control pos_read_write py
      • ์‹œ์ž‘ ์ƒํƒœ ๊ทธ๋ฆผ. manipulator_setting_image
    • rosrun modud_kair_control open_manipulator_position_control.py ์‹คํ–‰. rosrun modud_kair_control open_manipulator_position_control py
    • rosrun modud_kair_control open_manipulator_goal_publisher.py ์‹คํ–‰. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 0, 1, 2, 3์„ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋‹ค. open_manipulator_goal_publisher
      • 0 ์„ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ดˆ๊ธฐ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. (3, 4๋Š” ์ž…๋ ฅํ•˜์ง€ ๋ง์ž. ํ˜„์žฌ step input์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด์„œ ๋น ๋ฅด๊ฒŒ ์›€์ง์ธ๋‹ค.)
        image
      • ์‹คํ–‰ ๋ชจ์Šต
        manipulator_move

์ข…๋ฃŒ

  1. Terminal ์ข…๋ฃŒ ์ˆœ์„œ
    1. open_manipulator_goal_publisher.py
    2. open_manipulator_position_control.py
    3. pos_read_write.py
  2. ๋ณด๋“œ์˜ ์ „์› OFF์‹œ ๋กœ๋ด‡์ด ๋ฐ”๋‹ฅ์— ๋–จ์–ด์ ธ ์ถฉ๊ฒฉ์„ ๋ฐ›๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋กœ๋ด‡์„ ์†์œผ๋กœ ์žก์€ ์ฑ„๋กœ ๊บผ์ค€๋‹ค.
    robot_catch_off