{"id":17482209,"url":"https://github.com/xtalism/ros-mobile-robot","last_synced_at":"2025-04-10T11:53:05.359Z","repository":{"id":258391537,"uuid":"868293366","full_name":"Xtalism/ROS-Mobile-Robot","owner":"Xtalism","description":"Mobile Robot using ROS and ESP32 (rosserial)","archived":false,"fork":false,"pushed_at":"2024-10-21T05:53:38.000Z","size":2509,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-22T18:44:07.782Z","etag":null,"topics":["linux-ubuntu","platformio","robotic-operating-syustem","robotics","robotics-programming","ros","ros-noetic"],"latest_commit_sha":null,"homepage":"","language":"C++","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/Xtalism.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":"2024-10-06T01:50:16.000Z","updated_at":"2024-10-21T05:53:41.000Z","dependencies_parsed_at":"2024-11-04T02:33:38.245Z","dependency_job_id":null,"html_url":"https://github.com/Xtalism/ROS-Mobile-Robot","commit_stats":{"total_commits":46,"total_committers":2,"mean_commits":23.0,"dds":"0.13043478260869568","last_synced_commit":"584a4232a665f87a3e02e746fa9e0779204c0d4e"},"previous_names":["xtalism/ros-mobile-robot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtalism%2FROS-Mobile-Robot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtalism%2FROS-Mobile-Robot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtalism%2FROS-Mobile-Robot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtalism%2FROS-Mobile-Robot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xtalism","download_url":"https://codeload.github.com/Xtalism/ROS-Mobile-Robot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248215192,"owners_count":21066622,"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":["linux-ubuntu","platformio","robotic-operating-syustem","robotics","robotics-programming","ros","ros-noetic"],"created_at":"2024-10-18T23:04:35.430Z","updated_at":"2025-04-10T11:53:05.339Z","avatar_url":"https://github.com/Xtalism.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ROS-Mobile-Robot\n\nMobile Robot using ROS and ESP32 (rosserial).\n\n## Table of Contents\n- [ROS-Mobile-Robot](#ros-mobile-robot)\n  - [Table of Contents](#table-of-contents)\n  - [Hardware Requirements](#hardware-requirements)\n  - [Software Requirements](#software-requirements)\n  - [Installation](#installation)\n  - [Controller Setup](#controller-setup)\n  - [Initialize services.](#initialize-services)\n  - [License](#license)\n\n## Hardware Requirements\n- ESP32.\n- Motors.\n- L298N.\n- Xbox Controller.\n- 18650 batteries.\n\n## Software Requirements\nIn order for the project to work we need to have installed [Ubuntu 20.04 LTS Focal Fossa](https://releases.ubuntu.com/focal/) alocated\nin a partition with a Windows dual boot or as the main Operating System of your machine. \n\n![Ubuntu Focal Fossa](ubuntu.png)\n\nYou can try to virtualize it but in my experience, networking and driver problems arouse.\n\n## Installation\nWe need to install [ROS Noetic Ninjemys](https://wiki.ros.org/noetic), you can follow the [documentation](https://wiki.ros.org/noetic/Installation/Ubuntu) on how to install it or you can follow and run these few commands inside Ubuntu's terminal:\n\n```shell\nsudo sh -c 'echo \"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main\" \u003e /etc/apt/sources.list.d/ros-latest.list'\n```\n\n```shell\nsudo apt install curl\ncurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -\n```\n\n```shell\nsudo apt update\nsudo apt install ros-noetic-desktop-full\necho \"source /opt/ros/noetic/setup.bash\" \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n```\n\n## Controller Setup\nYou can use any controller listed in the [documentation](http://wiki.ros.org/joy). I'm personally\nusing an 8bitdo Ultimate C 2.4GHz. It is not a Xbox Controller per se but I managed to find some drivers to \ntrick Linux into thinking it is a generic Xbox Controller ([you can find the post here](https://gist.github.com/ammuench/0dcf14faf4e3b000020992612a2711e2)):\n\n```shell\ntouch /etc/udev/rules.d/99-8bitdo-xinput.rules\nsudo nano /etc/udev/rules.d/99-8bitdo-xinput.rules\n```\nInside 99-8bitdo-xinput.rules you type the following and save:\n```shell\nACTION==\"add\", ATTRS{idVendor}==\"2dc8\", ATTRS{idProduct}==\"3106\", RUN+=\"/sbin/modprobe xpad\", RUN+=\"/bin/sh -c 'echo 2dc8 3106 \u003e /sys/bus/usb/drivers/xpad/new_id'\"\n```\n\nReload udevadm service\n```shell\nsudo udevadm control --reload\n```\n\nYou also need to make your [joystick device accesible](http://wiki.ros.org/joy/Tutorials/ConfiguringALinuxJoystick):\n\n```shell\nls -l /dev/input/jsX\n```\n\nYou will see something similar to:\n```shell\ncrw-rw-XX- 1 root dialout 188, 0 2009-08-14 12:04 /dev/input/jsX\n```\n\nWe need to change XX to rw:\n```shell\nsudo chmod a+rw /dev/input/jsX\n```\n\n## Initialize services.\n\nWe initialize our master:\n```shell\nroscore\n```\n\nTo initialize our serial node using tcp protocol:\n```shell\nrosrun rosserial_python serial_node.py tcp\n```\n\nTo initialize our joy node using joy package:\n```shell\nrosrun joy joy_node _dev:=\"/dev/input/jsx\"\n```\n\nIf we want to see our joy node response:\n```shell\nrostopic echo joy\n```\n\n## License\n[MIT License](https://opensource.org/osd)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtalism%2Fros-mobile-robot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxtalism%2Fros-mobile-robot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtalism%2Fros-mobile-robot/lists"}