ROS2 packages for Pinky Pro
byeongkyu – Pinky PRO 모델 ROS 2 패키지 개발
참고 레포지토리: pinky_robot
- OS: Ubuntu 24.04
- ROS: ROS2 Jazzy
- Architecture: x86_64 (amd64) (Recommended)
- (ARM64 환경의 경우 관련 문서를 참고하세요.)
mkdir -p ~/pinky_pro/src
cd ~/pinky_pro/src
git clone https://github.com/pinklab-art/pinky_pro.git
cd ~/pinky_pro
rosdep install --from-paths src --ignore-src -r -y
cd ~/pinky_pro
colcon build
- ubuntu 24.04
- ros2 jazzy
ros2 launch pinky_bringup bringup_robot.launch.xml
ros2 launch pinky_navigation map_building.launch.xml
ros2 launch pinky_navigation map_view.launch.xml
ros2 run teleop_twist_keyboard teleop_twist_keyboard
ros2 run nav2_map_server map_saver_cli -f <map name>
ros2 launch pinky_navigation bringup_launch.xml map:=<map name>
ros2 launch pinky_navigation nav2_view.launch.xml
ros2 launch pinky_gz_sim launch_sim.launch.xml
ros2 launch pinky_navigation gz_map_building.launch.xml
ros2 launch pinky_navigation gz_map_view.launch.xml
ros2 run teleop_twist_keyboard teleop_twist_keyboard
ros2 run nav2_map_server map_saver_cli -f <map name>
ros2 launch pinky_navigation gz_bringup_launch.xml map:=<map name>
ros2 launch pinky_navigation gz_nav2_view.launch.xml
ros2 run pinky_led led_server
ros2 service call /set_led pinky_interfaces/srv/SetLed "{command: 'fill', r: 255, g: 0, b: 0}"
ros2 service call /set_led pinky_interfaces/srv/SetLed "{command: 'set_pixel', pixels: [4, 5, 6, 7], r: 0, g: 0, b: 255}"
ros2 service call /set_led pinky_interfaces/srv/SetLed "{command: 'clear'}"
ros2 service call /set_brightness pinky_interfaces/srv/SetBrightness "{brightness: 10}"
ros2 run pinky_emotion emotion_server
or
ros2 run pinky_emotion emotion_server --ros-args -p load_frame_skip:=3
Available emotions: (hello, basic, angry, bored, fun, happy, interest, sad)
ros2 service call /set_emotion pinky_interfaces/srv/Emotion "{emotion: 'happy'}"
Launch SLAM web server
ros2 launch pinky_navigation web_slam.launch.xml
Or launch Nav2 web server
ros2 launch pinky_navigation web_nav2.launch.xml map:=<map name>
With custom IP address (Optional)
ros2 launch pinky_navigation web_nav2.launch.xml map:=<map name> ip:=0.0.0.0
Launch SLAM web server
ros2 launch pinky_navigation gz_web_slam.launch.xml
Or launch Nav2 web server
ros2 launch pinky_navigation gz_web_nav2.launch.xml map:=<map name>
With custom IP address (Optional)
ros2 launch pinky_navigation gz_web_nav2.launch.xml map:=<map name> ip:=0.0.0.0
Default (Real Robot):
http://192.168.4.1:8080
Default (Simulation):
http://localhost:8080
If you specified a custom IP:
http://<host_ip>:<port>
여러 대의 Pinky Pro를 동일한 공유기에 연결하여 단체로 운영하거나 주행할 때, ROS2 DDS 통신 트래픽으로 인한 공유기 성능 한계 때문에 로봇의 통신이 끊기거나 움직임이 원활하지 않은 이슈가 발생할 수 있습니다.
이러한 현상이 나타나면, 각 Pinky와 사용자(PC) 간의 개별 연결은 유지한 상태에서 Pinky들이 공통으로 연결된 외부 공유기와의 연결을 해제하면 통신량이 줄어들어 문제가 해결됩니다.
Pinky Pro의 터미널에서 아래 명령어를 순서대로 입력하여 외부 네트워크 설정을 삭제하고 재부팅해 주세요.
sudo rm /etc/netplan/90*
sudo rebootNote: 이 명령어는 외부 공유기와 연결하기 위해 생성된 netplan 설정 파일(90으로 시작하는 파일)을 삭제하는 명령어입니다. 재부팅 후에는 로봇이 공유기를 거치지 않고 사용자의 PC와 직접 통신하는 기본 상태로 돌아가므로, 공유기 성능 한계로 발생하던 지연 현상이 사라집니다. 다시 외부 인터넷 연결이 필요한 경우에는 초기 네트워크 설정 과정을 다시 진행해야 합니다.

