├── .github └── workflows │ └── manual.yml ├── CODEOWNERS ├── LICENSE ├── README.md ├── images └── output.png └── src ├── main.cpp ├── tcp.h └── terminal.h /.github/workflows/manual.yml: -------------------------------------------------------------------------------- 1 | # Workflow to ensure whenever a Github PR is submitted, 2 | # a JIRA ticket gets created automatically. 3 | name: Manual Workflow 4 | 5 | # Controls when the action will run. 6 | on: 7 | # Triggers the workflow on pull request events but only for the master branch 8 | pull_request_target: 9 | types: [opened, reopened] 10 | 11 | # Allows you to run this workflow manually from the Actions tab 12 | workflow_dispatch: 13 | 14 | jobs: 15 | test-transition-issue: 16 | name: Convert Github Issue to Jira Issue 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@master 21 | 22 | - name: Login 23 | uses: atlassian/gajira-login@master 24 | env: 25 | JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} 26 | JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }} 27 | JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} 28 | 29 | - name: Create NEW JIRA ticket 30 | id: create 31 | uses: atlassian/gajira-create@master 32 | with: 33 | project: CONUPDATE 34 | issuetype: Task 35 | summary: | 36 | Github PR [Assign the ND component] | Repo: ${{ github.repository }} | PR# ${{github.event.number}} 37 | description: | 38 | Repo link: https://github.com/${{ github.repository }} 39 | PR no. ${{ github.event.pull_request.number }} 40 | PR title: ${{ github.event.pull_request.title }} 41 | PR description: ${{ github.event.pull_request.description }} 42 | In addition, please resolve other issues, if any. 43 | fields: '{"components": [{"name":"Github PR"}], "customfield_16449":"https://classroom.udacity.com/", "customfield_16450":"Resolve the PR", "labels": ["github"], "priority":{"id": "4"}}' 44 | 45 | - name: Log created issue 46 | run: echo "Issue ${{ steps.create.outputs.issue }} was created" 47 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @udacity/active-public-content -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Udacity 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Deprecated Repository 2 | This repository is deprecated. Currently enrolled learners, if any, can: 3 | - Utilize the https://knowledge.udacity.com/ forum to seek help on content-specific issues. 4 | - [Submit a support ticket](https://udacity.zendesk.com/hc/en-us/requests/new) if (learners are) blocked due to other reasons. 5 | 6 | 7 | [](https://www.udacity.com/robotics) 8 | 9 | # RoboND-Control_Rover 10 | A C++ program designed to accept user inputs and issue commands to the rover inside a simulator over a TCP/IP socket. 11 | 12 | ## Rover Simulator 13 | Before you compile and run this program, download the rover simulator for [Windows](https://s3-us-west-1.amazonaws.com/udacity-robotics/Term+2+Prep/RoverSim_Windows.zip) or [MacOS](https://s3-us-west-1.amazonaws.com/udacity-robotics/Term+2+Prep/RoverSim_MacOS.zip). Optionally you can download it for [Linux](https://s3-us-west-1.amazonaws.com/udacity-robotics/Term+2+Prep/RoverSim_Linux.zip), note that this version will only work with native Ubuntu! 14 | 15 | ## Running the C++ Program 16 | You should consider compiling and executing this program inside an Ubuntu virtual machine! 17 | Before doing so, edit your VMWare or VMFusion network settings and make sure you are connected to the NAT network. 18 | 19 | ### Navigate to a working directory and clone the repository 20 | ```sh 21 | $ cd Desktop 22 | $ git clone https://github.com/udacity/RoboND-Control_Rover.git 23 | $ cd ~/Desktop/RoboND-Control_Rover 24 | ``` 25 | 26 | ### Now, compile the code 27 | ```sh 28 | $ mkdir build 29 | $ cd src/ 30 | $ g++ main.cpp -o ../build/app 31 | ``` 32 | 33 | ### Before your run the program, take note of the IP address of your virtual machine 34 | ```sh 35 | $ ifconfig 36 | ``` 37 | 38 | ### Finally, run the program 39 | ```sh 40 | $ ../build/app 41 | ``` 42 | 43 | ### Running the Rover Simulator 44 | 1. Leave your virtual machine and run the simulator inside Windows or MacOS. 45 | 2. Then, select your graphics settings and enter the IP address of your Ubuntu VM noted earlier! 46 | 3. Select the Autonomous mode designed to accept TCP Communication. 47 | 48 | ### Controlling the Rover 49 | Refer to this table and control your robot with keyboard commands through the Ubuntu terminal! 50 | 51 |