{"id":19413500,"url":"https://github.com/wisehackermonkey/servo-mover-ros-node","last_synced_at":"2026-03-02T19:33:52.490Z","repository":{"id":132672529,"uuid":"341992877","full_name":"wisehackermonkey/servo-mover-ros-node","owner":"wisehackermonkey","description":null,"archived":false,"fork":false,"pushed_at":"2021-03-29T01:25:11.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-07T15:44:04.119Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wisehackermonkey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-24T18:15:32.000Z","updated_at":"2021-03-22T14:46:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"b8b299b1-634c-4241-8c25-a2cb8e690cfd","html_url":"https://github.com/wisehackermonkey/servo-mover-ros-node","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisehackermonkey%2Fservo-mover-ros-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisehackermonkey%2Fservo-mover-ros-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisehackermonkey%2Fservo-mover-ros-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisehackermonkey%2Fservo-mover-ros-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wisehackermonkey","download_url":"https://codeload.github.com/wisehackermonkey/servo-mover-ros-node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240593150,"owners_count":19825930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T12:33:28.481Z","updated_at":"2026-03-02T19:33:47.448Z","avatar_url":"https://github.com/wisehackermonkey.png","language":"CMake","readme":"# servo-mover-ros-node\n----\n[![Open Source Love svg2](https://badges.frapsoft.com/os/v2/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\u003c!-- \u003cimg src=\"assets/NNNNNNNNNNNNN\" width=\"400\"\u003e --\u003e\n\u003ch2 align=\"center\"\u003ecreates a simple ros node that controls two hoby servo motor's from a arduino\u003c/h2\u003e\n\n\u003c!-- \u003ch4 align=\"center\"\u003e________________________\u003c/h4\u003e --\u003e\n\n\n# Quick start\n### __________________\n\u003c!-- \n##### __________________________\n```bash\n``` \n--\u003e\n\n# Summary\n\u003c!-- ### -  *[Quick start](#Quick-start)*\n### -  *[Installation](#Installation)*\n### -  *[For developers](#For-developers)* --\u003e\n### -  *[Contributors](#Contributors)*\n### -  *[License](#License)*\n\n\n\n\n\u003c!-- # Installation\n```bash\n```\n --\u003e\n\u003c!-- ----------------- --\u003e\n\u003c!-- # Screenshots --\u003e\n\u003c!-- - \u003cimg src=\"assets/_____________\" width=\"400\"\u003e  --\u003e\n\u003c!-- -  --\u003e\n\n\n\n\u003c!-- SETUP --\u003e\n-----------------\n# For developers\n### \n```bash\n 180  curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh\n181  cd bin/\n182  ls\n183  arduino-cli\n184  export PATH=\"$HOME/bin:$PATH\"\n185  arduino-cli\n186  cd ~/github/\n187  ls\n188  cd servo-mover-ros-node/\n189  ls\n190  arduino-cli config init\n191  cd arduino/\n192  arduino-cli sketch new Servo_control_v1\n193* /\n194  ls\n195  arduino-cli sketch new ServoControl_v1\n196  arduino-cli sketch new ServoControl_v2\n197  ls\n198  cd ServoControl_v\n199  cd ServoControl_v1\n200  ls\n201  arduino-cli core update-index\n202  arduino-cli board list\n203  arduino-cli board listall arduino:avr:uno\n204  arduino-cli board listall \n205  arduino-cli core install arduino:avr\n206  arduino-cli board list\n207  arduino-cli board listall \n208  $ arduino-cli compile --fqbn arduino:samd:mkr1000 MyFirstSketch\n209  arduino-cli compile --fqbn arduino:avr:uno ServoControl_v1.ino \n210  arduino-cli lib search ServoControl_v1.ino \n211  arduino-cli lib search Servo\n212  arduino-cli lib search Servo |less\n213  arduino-cli lib search Servo | less\n214  arduino-cli lib search Servo | more\n215  arduino-cli lib search Servo.h\n216  arduino-cli compile --fqbn arduino:avr:uno ServoControl_v1.ino \n217  wget https://peppe8o.com/download/arduino_lib/Servo.zip\n218  ls\n219  unzip Servo.zip \n220  ls\n221  arduino-cli compile --fqbn arduino:avr:uno ServoControl_v1.ino \n222  arduino-cli compile --fqbn arduino:avr:uno hello.ino \n223  cd ..\n224  arduino-cli compile --fqbn arduino:avr:uno hello\n225* arduino-cli config dump[B\n226  history\n227  arduino-cli compile --fqbn arduino:avr:uno hello\n228  arduino-cli compile --fqbn arduino:avr:uno ServoControl_v1\n229  arduino-cli lib search ros\n230  arduino-cli lib search ros serial\n231  arduino-cli lib search rosserial\n232  arduino lib install rosserial@0.7.9\n233  arduino-cli lib install rosserial@0.7.9\n234  arduino-cli lib install \"Rosserial Arduino Library\"@0.7.9\n235  ls\n236  arduino-cli compile --fqbn arduino:avr:uno ServoControl_v1\n237  history\n```\n### \n```bash\nroscore -v\nrostopic \n```\n### setup ros node\n```bash\ncd ~/catkin_ws/src\ncatkin_create_pkg servo-mover-ros-node rospy std_msgs\ncd ~/catkin_ws\ncatkin_make\nsource devel/setup.bash\nrospack profile\nroscd servo-mover-ros-node\nmkdir scripts\n\nroscd servo-mover-ros-node/scripts\ntouch servo_control.py\nchmod +x servo_control.py\n```\n### install rosserial-arduino\n```bash\nsudo apt-get install ros-noetic-rosserial-arduino\nsudo apt-get install ros-noetic-rosserial\n```\n\n```bash\nrosrun  servo-mover-ros-node scripts/servo_control.py\nERROR : \n```\n### fix error\n#### \"CMakeLists.txt\"\n```cmake\ncatkin_install_python(PROGRAMS scripts/servo_control.py\n  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n)\n```\n\n### Window 1\n```bash\ncd ~/catkin_ws\nsource ~/catkin_ws/devel/setup.bash\nrospack find  servo-mover-ros-node\ncatkin_make\nrosrun rosserial_python serial_node.py /dev/ttyACM0\nrosrun  servo-mover-ros-node servo_control.py\n```\n\n### Window 2\n```bash\nrostopic list\n----------------\nubuntu@reachy:~/catkin_ws$ rostopic list\n/head_servo_position\n/rosout\n/rosout_agg\n----------------\nrostopic echo /head_servo_position\n```\n```bash\n\ncd ~/catkin_ws/src\ngit clone https://github.com/wisehackermonkey/servo-mover-ros-node.git\ncd servo-mover-ros-node\n\n\narduino-cli compile --fqbn arduino:avr:uno arduino/ServoControl_v1\narduino-cli board list\ncd ./arduino\narduino-cli upload -v -p /dev/ttyACM0 --fqbn  arduino:avr:uno ServoControl_v1\n\nrosrun  servo-mover-ros-node servo_control.py\n-----------------\nubuntu@reachy:~/github/servo-mover-ros-node/arduino$ rosrun  servo-mover-ros-node servo_control.py\nservo_mover: Running\n-----------------\n```\n### window 2\n```bash\nrostopic list\n-------------\nubuntu@reachy:~/catkin_ws$ rostopic list\n/head_servo_position\n/rosout\n/rosout_agg\n--------------\nrostopic echo /head_servo_position\n```\n\n```bash\nrosrun  servo-mover-ros-node  servo_control.py\narduino-cli upload -v -p /dev/ttyACM0 --fqbn  arduino:avr:uno ServoControl_v1\nrosrun  servo-mover-ros-node  servo_control.py\nrostopic list\n```\n\n### view serial monitor with arduino-cli\n#### Note: CTRL-C is exit\n```bash\nstty -F /dev/ttyACM0 raw 115200;cat /dev/ttyACM0\n```\n-----------------\n\n\n## upload arduino code ServoControl_v2.ino\n[Run multiple servo on ROS with arduino. - ROS Answers: Open Source Q\u0026A Forum](https://answers.ros.org/question/145951/run-multiple-servo-on-ros-with-arduino/?answer=218998?answer=218998#post-id-218998)\n[ServoControl with two or more servos on arduino rosserial - ROS Answers: Open Source Q\u0026A Forum](https://answers.ros.org/question/212611/servocontrol-with-two-or-more-servos-on-arduino-rosserial/)\n```bash\nrosrun rosserial_python serial_node.py /dev/ttyACM0\n\nrostopic pub /head/neck_pan_goal std_msgs/UInt16  \u003cangle1\u003e \u0026\u0026 rostopic pub servo2 std_msgs/UInt16  \u003cangle2\u003e\nrostopic pub /head/neck_pan_goal std_msgs/UInt16  0 \u0026\u0026 rostopic pub servo2 std_msgs/UInt16  180\n\n \n```\n\n### how to create launch files\n```bash\nmkdir launch\ncd launch\nnano head_sero_mover.launch\nor \ncode head_sero_mover.launch\n\n```\n### debugging\n```bash\nrostopic list \nrostopic echo /head/neck_pan_goal\nrostopic info /head/position_animator\nrostopic pub /head/position_animator \nrostopic pub /head/position_animator sensor_msgs/JointState '{position: [1.0, -1.2]}'\n```\n### Run node\n#### note all of these are in sepeart windows\n```bash\n# term 1\nrostopic echo /head/neck_pan_goal\n# term 2\npython3 ./servo-mover-ros-node/scripts/servo_control.py \n# term 3\n# outdated\n# rostopic pub /head/position_animator sensor_msgs/JointState '{position: [1.0, 2.0]}'\n# rostopic pub /head/position_animator sensor_msgs/JointState '{position: [180.0, 180.0]}'\n# rostopic pub /head/position_animator sensor_msgs/JointState '{position: [180.0, 180.0]}'\n\n# this moves the head from -90 degrees (-1.570796) to posiive 90 degrees\nrostopic pub /head/position_animator sensor_msgs/JointState '{position: [-1.570796, 1.570796]}'\n\n```\n\n# Contributors\n\n[![](https://contrib.rocks/image?repo=wisehackermonkey/servo-mover-ros-node)](https://github.com/wisehackermonkey/servo-mover-ros-node/graphs/contributors)\n\n##### Made with [contributors-img](https://contrib.rocks).\n\n-----------------\n# License\n#### MIT © wisehackermonkey\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n```bash\nby oran collins\ngithub.com/wisehackermonkey\noranbusiness@gmail.com\n______________________\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003c!-- ---------------------------------- --\u003e\n\u003c!-- FULL --\u003e\n\u003c!-- ---------------------------------- --\u003e\n\n\u003c!-- # servo-mover-ros-node --\u003e\n\u003c!-- ---- --\u003e\n\u003c!-- \n[![Open Source Love svg2](https://badges.frapsoft.com/os/v2/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\u003cimg src=\"assets/NNNNNNNNNNNNN\" width=\"400\"\u003e\n\u003ch2 align=\"center\"\u003e____________________\u003c/h2\u003e\n\u003ch4 align=\"center\"\u003e________________________\u003c/h4\u003e\n --\u003e\n\n\u003c!-- \n\n# Quick start\n### __________________\n##### __________________________\n```bash\n```\n\n --\u003e\n\n\n\u003c!-- \n\n# Summary\n### -  *[Quick start](#Quick-start)*\n### -  *[Live Demo](#Live-demo)*\n### -  *[Installation](#Installation)*\n### -  *[Screenshots](#Screenshots)*\n### -  *[License](#License)*\n### -  *[Features](#Features)*\n### -  *[For developers](#For-developers)*\n### -  *[Todo](#TODO)*\n### -  *[Related](#Related)*\n### -  *[Contributors](#Contributors)*\n --\u003e\n\n\n\n\u003c!-- ----------------- --\u003e\n\u003c!-- \u003cimg src=\"assets/KKKKKKKKKKK\" width=\"400\"\u003e --\u003e\n\u003c!-- # [Live Demo](https://www._____________.com) --\u003e\n\n\n\n\n\n\u003c!-- \n# Installation\n### \n```bash\n``` \n--\u003e\n\n\n\n\n\u003c!-- \n\n-----------------\n# Screenshots\n- \u003cimg src=\"assets/_____________\" width=\"400\"\u003e \n- \n--\u003e\n\n\n\n\u003c!-- \n\n# Features\n- [x] ______\n- [ ] ______\n\n--\u003e\n\n\n\u003c!-- \n-----------------\n# For developers\n### \n```bash\n```\n --\u003e\n\n\n\n\n\n\u003c!-- -----------------\n# TODO\n- [x] ___________\n- [ ] ___________ \n--\u003e\n\n\u003c!-- \n-----------------\n# Built with\n- #### ________________\n--\u003e\n\n\n\n\n\n\u003c!-- -----------------\n# Related \n### [_________](https://www.____________.com)\n --\u003e\n\n\n\n\n\n\u003c!-- \n-----------------\n# Contributors\n\n[![](https://contrib.rocks/image?repo=wisehackermonkey/servo-mover-ros-node)](https://github.com/wisehackermonkey/servo-mover-ros-node/graphs/contributors)\n\n##### Made with [contributors-img](https://contrib.rocks).\n\n-----------------\n# License\n#### MIT © wisehackermonkey\n[![MIT](https://img.shields.io/github/license/wisehackermonkey/servo-mover-ros-node.svg)](https://github.com/wisehackermonkey/servo-mover-ros-node/blob/master/LICENSE)\n--\u003e\n\n\u003c!-- \n```bash\nby oran collins\ngithub.com/wisehackermonkey\noranbusiness@gmail.com\n______________________\n``` \n--\u003e\n\n\u003c!-- ---------------------------------- --\u003e\n\u003c!-- EXTRAS --\u003e\n\u003c!-- ----------------------------------- --\u003e\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\u003c!-- \n[![Javascript](https://img.shields.io/badge/Javascript-Enabled-lightgreen.svg)](https://shields.io/) \n[![forthebadge made-with-python](https://forthebadge.com/images/badges/made-with-python.svg)](https://www.python.org/)\n![Python](https://img.shields.io/badge/Python-Enabled-\u003cCOLOR\u003e.svg)\n![P5.js](https://img.shields.io/badge/P5.js-Enabled-pink.svg)\n[![Generic badge](https://img.shields.io/badge/\u003cSUBJECT\u003e-\u003cSTATUS\u003e-\u003cCOLOR\u003e.svg)](https://shields.io/)\n[![GitHub release](https://img.shields.io/github/release/wisehackermonkey/servo-mover-ros-node.svg)](https://GitHub.com/wisehackermonkey/servo-mover-ros-node/releases/)\n[![GitHub tag](https://img.shields.io/github/tag/wisehackermonkey/servo-mover-ros-node.svg)](https://GitHub.com/wisehackermonkey/servo-mover-ros-node/tags/)\n[![GitHub pull-requests](https://img.shields.io/github/issues-pr/wisehackermonkey/servo-mover-ros-node.svg)](https://GitHub.com/wisehackermonkey/servo-mover-ros-node/pull/)\n[![Website perso.crans.org](https://img.shields.io/website-up-down-green-red/http/www.orancollins.com.svg)](http://www.orancollins.com/) \n    --\u003e\n\n\u003c!-- \n# https://yuml.me/diagram/plain/activity/draw\n### (start)-\u003e[AAAAAAAA]\u003caaaaa-\u003e(BBBBBB)-\u003e(end) \n\n# Diagram\n## \n```bash\n```\n --\u003e\n\n\u003c!-- \n\n# List\n- \n- \n- \n\n\n\n# Toggle List (NO FORMATTING)\n\u003cdetails\u003e\u003csummary\u003eAAAAAAAA\u003c/summary\u003e\n\u003cdetails\u003e\u003csummary\u003eHidden A\u003c/summary\u003e\n\u003c/details\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eBBBBBBBBB\u003c/summary\u003e\n\u003cdetails\u003e\u003csummary\u003eHidden B\u003c/summary\u003e\n\u003c/details\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eCCCCCCCCC\u003c/summary\u003e\n\u003c/details\u003e\n\n\n\n# Toggle list with formatting\n\u003cdetails\u003e\u003csummary\u003eLevel 1\u003c/summary\u003e\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u0026emsp;BBBBBBBBB\u003c/summary\u003e\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003e\u0026emsp;\u0026emsp;CCCCCCCCC\u003c/summary\u003e\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003e\u0026emsp;\u0026emsp;\u0026emsp;DDDDDDDDD\u003c/summary\u003e\u003c/details\u003e\n\n\n# Toggle list Nested\n\u003cdetails\u003e\u003csummary\u003eLevel 1\u003c/summary\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u0026emsp;BBBBBBBBB\u003c/summary\u003e\n\u003cdetails\u003e\u003csummary\u003e\u0026emsp;\u0026emsp;CCCCCCCCC\u003c/summary\u003e\n\u003cdetails\u003e\u003csummary\u003e\u0026emsp;\u0026emsp;\u0026emsp;DDDDDDDDD\u003c/summary\u003e\n\n\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\u003c/details\u003e\n\n# Keyboard Commnand\n### \u003ckbd\u003eCommand/ctrl + R\u003c/kbd\u003e \n\n# Installation\n### \n```bash\ncd ~\ngit clone https://github.com/wisehackermonkey/servo-mover-ros-node.git\ncd servo-mover-ros-node\npip install -r requirements.txt\nnpm install\n```\n\n# Docker\n### Build\n```bash\ncd ~\ngit clone https://github.com/wisehackermonkey/servo-mover-ros-node.git\ncd servo-mover-ros-node\ndocker build -t wisehackermonkey/servo-mover-ros-node:latest .  \n```\n### Run\n```bash\ndocker run -it --rm --name wisehackermonkey/servo-mover-ros-node:latest  \n```\n### Docker-compose\n```bash\ndocker-compose build\ndocker-compose up \n```\n\n\n\n# Publish Docker Image\n```bash\ndocker build -t wisehackermonkey/servo-mover-ros-node:latest .\ndocker login\ndocker push wisehackermonkey/servo-mover-ros-node:latest\n```\n\n --\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisehackermonkey%2Fservo-mover-ros-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwisehackermonkey%2Fservo-mover-ros-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisehackermonkey%2Fservo-mover-ros-node/lists"}