{"id":22051591,"url":"https://github.com/parlaynu/go-jetbot-101","last_synced_at":"2026-05-06T07:39:41.797Z","repository":{"id":178809434,"uuid":"658519484","full_name":"parlaynu/go-jetbot-101","owner":"parlaynu","description":"Building Jetbot applications using Go.","archived":false,"fork":false,"pushed_at":"2023-10-23T22:18:43.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-28T21:34:33.027Z","etag":null,"topics":["golang","gstreamer","jetbot","nvidia"],"latest_commit_sha":null,"homepage":"","language":"Go","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/parlaynu.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":"2023-06-26T01:05:17.000Z","updated_at":"2023-10-24T06:50:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"f75af799-f462-4dcc-b17a-830e84096589","html_url":"https://github.com/parlaynu/go-jetbot-101","commit_stats":null,"previous_names":["parlaynu/go-jetbot-101"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fgo-jetbot-101","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fgo-jetbot-101/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fgo-jetbot-101/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fgo-jetbot-101/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parlaynu","download_url":"https://codeload.github.com/parlaynu/go-jetbot-101/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245121644,"owners_count":20564154,"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":["golang","gstreamer","jetbot","nvidia"],"created_at":"2024-11-30T15:09:53.333Z","updated_at":"2026-05-06T07:39:36.763Z","avatar_url":"https://github.com/parlaynu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jetbot Tools in Go\n\nThis repository contains some tools for driving a jetbot, written in Go. \n\n* https://www.waveshare.com/wiki/JetBot_AI_Kit\n\nWhy Go instead of the usual python and/or ROS? Mainly as a learning experience and to see how much support \nthere is for Go in a robotics environment. Also, the concurrency and parallelism of Go seems like it could be\na good fit.\n\nSo far there is only a very basic drive application; I'm planning on building on it\nas I have time.\n\n## Prerequisites\n\n### Golang\n\nYou need the golang compiler installed on the jetbot. The download page is [here](https://go.dev/dl/).\nI downloaded this one:\n\n    wget https://go.dev/dl/go1.20.5.linux-arm64.tar.gz\n\nExpand and install on the jetbot at `/usr/local/go`:\n\n    sudo tar xzf go1.20.5.linux-arm64.tar.gz -C /usr/local\n\nThen add the path to your `~/.profile` file:\n\n    if [ -d \"/usr/local/go/bin\" ] ; then\n        PATH=\"/usr/local/go/bin:$PATH\"\n    fi\n\nThat's all. The dependencies needed to build should be downloaded automatically.\n\n## Tools\n\nSimply run `make` at the top level and the tools will be built and placed in a top-level\n`bin` directory.\n\n### Stop\n\nLike it says, it stops the robot. If one of the other applications is stopped abruptly,\nfor example with ctrl-c, and the robot is still on the move, you can stop it with this.\n\n    ./bin/stop\n\n### Drive\n\nThis is the base level drive application. It uses the gamepad controller to drive the\nwheels directly.\n\nThere are two controller options:\n\n- '0' - left and right joysticks directly control the left and right motors (lr)\n- '1' - right joystick controls longitudinal and angular speeds (lw)\n\nTo stop cleanly, press the 'X' button.\n\nFull usage is:\n\n    Usage: drive [-x] [-s top-speed] [-c controller]\n      -c int\n        \tselect the controller to use (0 - lr, 1 - lw)\n      -s int\n        \tset the top speed scale (1 - 8) (default 2)\n      -x\tmotors are wired the other way around\n\nIf you've wired your motors the same way I have, then you can start with simply:\n\n    ./drive\n\nIf the controls are the wrong way for you, you've wired your motors the opposite way to me. To fix \nit, run the command like this:\n\n    ./drive -x\n\nThe speed setting controls the duty cycle of the PWM signal driving the motor and \nsets the top speed. This starts with a value of 1 (12.5%) and ends at 8 (100%).\nThe default is 2 (25%) and is a pretty good place to start.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparlaynu%2Fgo-jetbot-101","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparlaynu%2Fgo-jetbot-101","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparlaynu%2Fgo-jetbot-101/lists"}