===== Marty v1 Integration and API Docs =====
Marty has two main different modes of operation - remotely controlled with just a Rick in the head (how Marty is normally when you first get one), and an extended mode where a Raspberry Pi, Arduino or other serial or I2C enabled microcontroller or mini-pc is inside the head with Rick.
Some of our APIs and Integrations work with only one of these modes, some with both so we've split them into groups below. Martys can also be simulated using V-REP without needing a physical robot, also detailed below.
For Tutorials and Guides instead, and sourcecode, check out: // //
[[https://learn.martytherobot.com|Learning Portal]]
[[https://github.com/robotical/|Robotical on GitHub]]
[[http://docs.robotical.io/calibration/|Marty Calibration Tool ]]
[[http://docs.robotical.io/calibration-troubleshooting/|Calibration Troubleshooting]]
===== Standard Setup with Just Rick =====
{{:martyv1:scratchlogo.png?100| }}
Scratch Function Reference
Beginner
[[:martyv1:robotsdocs:scratch3| ]]
**Scratch** is the simplest way to program a Marty if you're a complete beginner. It has a simple graphical interface and blocks you can combine to build up a program, and is very popular with kids & educators.
{{:martyv1:python-logo.png?100| }}
Python Function Reference
Intermediate & Advanced
[[martyv2:documentation:python_function_reference| ]]
**Python** is an easy to learn real-world programming language used by hundreds of thousands of people, with a strong online community and thousands of libraries.
Our Python API is probably the best pick for most people.
===== RaspberryPi in head with Rick =====
{{:martyv1:raspberrypi_logo.png?h=25| }}
RPi Setup Guide
Intermediate
[[martyv1:using-marty:expand:raspberry-pi-and-ros:gettingstarted| ]]
Connecting a **RaspberryPi** to a Marty is pretty simple, and adds a whole load of power and new possibilities.
{{:martyv1:python-logo.png?100&nolink| }}
Python
Intermediate & Advanced
[[martyv2:documentation:python_function_reference| ]]
**Python** can also be used to control Marty from within the head. If you've also got **ROS** installed, then you have full access to **rospy**, otherwise you can use **martypy**.
{{:martyv1:ros_logo.png?100&nolink| }}
ROS
[[martyv1:robotsdocs:ros| ]]Advanced
**ROS**, the **Robot Operating System** is an incredible framework and collection of tools and libraries for building robotics applications. Marty is fully integrated into ROS, with the **ros_marty** API.
===== Simulation =====
{{:martyv1:vrep_logo.png?100&nolink| }}
V-REP Documentation
Advanced
[[martyv1:robotsdocs:vrep| ]]
**V-REP** is a popular robot simulator with a whole load of ways to integrate with it. Marty is natively supported and packaged with V-REP.
(Note that V-REP is licensed according to Coppelia Robotics' licensing restrictions and condition)
===== Hardware & Low-Level APIs =====
This set of articles cover the sensors and physical aspects of Marty, as well as the more nitty-gritty technical details of Rick, Marty's control board and the associated electronics they come with. Also covered are complete connection details for interfacing with Rick's GPIOs and interface connectors.
Additionally our lowest level APIs are documented here, so if there's a language or system you want to use that's not currently supported, you may still be able to implement your control through these bare-metal APIs.
Sensors
[[martyv1:robotsdocs:hardware:sensors| ]]
Description of the different things Marty can sense and detect, as well as axis conventions
[[martyv1:robotsdocs:hardware:remote-connection| ]]
WiFi Connection Guide
Connecting to a Rick over a local network from a computer or other device.
[[martyv1:robotsdocs:hardware:esp-socket-api| ]]
Socket API
Byte-level specification of the WiFi TCP socket API with Rick via the ESP, as well as low-level info on the ROS Serial integration and Websocket communication with Rick
[[martyv1:robotsdocs:hardware:specs| ]]
Specs & Ratings
Rick's maximum power output ratings, battery safety, thermal characteristics, limits and charge capability.
[[martyv1:robotsdocs:hardware:rick| ]]
Rick Info
Full schematics for the Rick control board and its common connections to peripherals such as serial ports, GPIOs, Motors and cabling.