https://wiki.sdrobots.com/api.php?action=feedcontributions&user=Brent&feedformat=atomSDR Wiki - User contributions [en]2024-03-28T22:19:45ZUser contributionsMediaWiki 1.31.8https://wiki.sdrobots.com/index.php?title=Control_System&diff=1936Control System2021-12-27T14:44:37Z<p>Brent: /* Digital Wireless Control Systems */</p>
<hr />
<div>A control system is the combination of components and software involved in collecting and transmitting inputs from the remote operator to the robot and turning the inputs into commands for the robot's actuators, lights, and other desired outputs. Some control systems also send information about the robot back to the remote and display it for the operator.<br />
<br />
There are several options for controlling your robot. The big division of remote control is between Analog versus Digital Control.<br />
==Analog==<br />
Analog Control provides the simplest link between the operator and the robot possible, it is, however, one way. Video is typically transmitted back over an open analog channel. Analog video transmissions can be viewed on any receiver, both yours or anyone else. Analog Remotes similar to R/C Aircraft can be used to control the robot, or a custom controller can be made to control and display the video in a case. We offer several types of analog controllers.<br />
<br />
===RC Control: (Handheld wireless control devices)===<br />
[[File:Flysky FS-i6 Remote.jpg|thumb|<sdr item id=2617>Flysky FS-i6 Transmitter</sdr item>]]<br />
<br />
*<sdr item id=2617>FlySky FS-i6 2.4G 6CH Transmitter & Receiver</sdr item> FlySky FS-i6 2.4G 6ch RC Transmitter with FS-iA6 Receiver.<br />
*<sdr item id=3192>FlySky FS-i6X 2.4G 6CH Transmitter & Receiver</sdr item> FlySky FS-i6X 2.4G 10ch RC Transmitter with FS-iA6 Receiver.<br />
*<sdr item id=2892>FlySky FS-i6X 2.4G 10CH Transmitter & Receiver</sdr item> FlySky FS-i6X 2.4G 10ch RC Transmitter with FS-iA10B Receiver.<br />
*<sdr item id=2794>FlySky FS-i6s 2.4G 10CH Transmitter & Receiver</sdr item> FlySky FS-i6s 2.4G 10ch RC<br />
*<sdr item id=2150>Spektrum USB-Interface</sdr item> This is a 5-channel 2.4GHz DSM2 aircraft system transmitter. It replaces the DX5e transmitter (as of 12/18/15).<br />
*<sdr item id=1030>Spektrum AR6110e DSM2 ML 6Ch Fail Safe Receiver</sdr item> Spektrum’s 2.4GHz DSM2 technology gets even smaller with the AR6110e 6-channel DSM2 Microlite Park Flyer Receiver with End Pins. Ideal for compact airframes or small robots.<br />
*<sdr item id=995>Spektrum Remote Receiver Extension</sdr item> - 36 inch This is a 36-inch remote receiver extension for Spektrum.<br />
<br />
For more help with Remote Control (RC), please visit our [[RC and Servo Support|Remote Control Support Page.]]<br />
==Digital Control==<br />
Digital Control of a robot uses Ethernet over a wireless link to control the robot. The wireless link will be over standard WiFi, CoFDM, or a Dual Band Wireless Link similar to WiFi. Our Digital Remotes are enclosed in a Pelican (or Pelican-like) case that houses the radio, control joysticks and switches, and the video monitor.<br />
<br />
===Digital Wireless Control Systems===<br />
<br />
*<sdr category id=138> Routers and Bridges</sdr category>: Routers and Bridges to provide Wireless capabilities to your robot!<br />
*<sdr category id=139> Wi-Fi Control Packages</sdr category>: Pre-configured WiFi control systems to get your robot up and running! These control systems come assembled and tested by our staff to ensure out-of-the-box functionality.<br />
*<sdr category id=159> XBee, Zigbee, and RF Wireless Communication</sdr category>: These modules allow a very reliable and simple communication between anything with a serial port! Point to point and multi-point networks are supported.<br />
*<sdr category id=100> Tactical Robot Controllers</sdr category>: There are many ways to control a robot. We offer a wide range of military grade tactical controllers. Find the controller that works best for you.<br />
*<sdr category id=160> Antennas and Pigtails</sdr category>: 2.4 Ghz antennas and pigtails for wireless routers and radios<br />
<br />
For more help with Remote Control (RC), please visit the following support pages:<br />
[[RC and Servo Support|Remote Control Support Page]]<br />
[[Wi-Fi Robots|Network and WiFi Support Page]]<br />
[[XBee Wireless Serial Module|Wireless Serial Support Page]]<br />
[[:Category:Tactical Robots|Tactical Robot Support Page]]<br />
===Complete Control Packages===<br />
We offer <sdr category id=206> Complete Control Packages</sdr category> to control the robots. These are complete systems that are custom configured to your needs that will connect your robot.<br />
<br />
*<sdr item id=2355> Programmable RC Control Interface Package</sdr item>: This package offers the simplicity of manual RC control while having access to the diversity of Arduino I/O.<br />
*<sdr item id=2353> Programmable GPS Navigation Package</sdr item>: This package includes all the items you would need to make a robot drive to GPS waypoints autonomously.<br />
*<sdr item id=1846> WiFi Remote System with Tablet OCU</sdr item>: This package is for controlling SuperDroid Robots. It contains a WiFi Router, Serial Bridge, Power Supplies, Custom Controller Board, Video Server, Tablet with custom robot control and interface with video monitoring.<br />
*<sdr item id=1727> Programmable xBee Control Interface Package</sdr item>: This package allows you to control a robot, out of the box, using the power of Arduino and xBee. The remote comes standard with an ABS enclosure and your option of 2, 3, or 4-axis joystick.Full source code is provided!<br />
*<sdr item id=1440> Programmable WiFi Custom Control Interface Package</sdr item>: Fully configured, tested, and supported. This package comes with a network device, Arduino Mega control board, Arduino Ethernet Shield V2, SDR Arduino Mega Sensor Shield, and a 4x TTL relay board. It will fit on top of any of our chassis options.<br />
*<sdr item id=2369> ROS Autonomous Control Package</sdr item>: This package provides a completely assembled and configured Robot Operating System (ROS). ROS is a Linux based meta operating system for your robot with a massive open source community.<br />
<br />
===Autonomous Control===<br />
This is a huge topic due to all of the self-driving cars, etc. This, however, is not a simple or trivial task. Google has spent billions of dollars in development.<br />
<br />
If you are interested in building an autonomous robot, then please follow these links to help get you started.<br />
<br />
*[[:Category:Autonomous|Autonomous Robots Hub]]: Collection of support pages about Autonomous Robots and related topics.<br />
*[[:Category:Sensors|Sensors Hub]]: Collection of support pages about Sensors and related topics.<br />
*<sdr category id=194>Programmable Robots:</sdr category> Programable Robots. Autonomous Robots. Robots that think on their own and do set tasks. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=206>Control Systems:</sdr category> These custom control systems will allow you to control your robot wirelessly, autonomously, or both. Autonomous GPS navigation. Control and monitoring your robot wirelessly over WiFi. If you need something custom, contact us.<br />
*<sdr category id=75>Programmable SDR Robots:</sdr category> These programmable robots are designed by SuperDroid Robots. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=35>Sensors:</sdr category> We have sensors to help you detect gasses, conduct surveillance, and measure performance. These sensors can help toward building an autonomous robot.<br />
*[[Autonomous:Custom Autonomous Robots|Autonomous Robot Services]]: Autonomous robots are a challenge as they require a precise blend of mechanical, electrical, and software engineering. We have the capabilities to design and develop the autonomous solutions you require.<br />
*[[Autonomous Robots Hub|Autonomous WiFi Robot Arduino Robot Programming:]] The page describes the method and gives examples of how we programmed the Free Autonomous WiFi Robot Arduino Robot in our give away.<br />
*[[:Category:Sensors|Sensor Support:]] We carry a large array of sensors to enable you to develop a smart and autonomous robotic solution.<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Robot_Electrical_Power&diff=1934Robot Electrical Power2021-12-13T13:53:11Z<p>Brent: Changed categories.</p>
<hr />
<div>https://www.superdroidrobots.com/shop/custom.aspx/robot-electrical-power-and-wiring/53/<br />
<br />
==Summary==<br />
Robots need their batteries! Batteries provide power to the robot, and <sdr category id=10>we sell several different batteries</sdr category>. Our motors are 12V or 24V. You can look at the <sdr category id=7>motor pages</sdr category> to see what the current draw is for each motor. If you're using small motors and don't have the robot weighted down, the motors will not draw as much current so a small mAhr battery pack should be fine. However if you are going to load the robot up and run it in thick carpet or grass, or if you just want a long run time, then the larger AHr batteries would be a better choice.<br />
<br />
==Battery Wiring==<br />
When wiring your batteries to your robot, there are concerns you must address. Namely, what output voltage you need and how you are going to charge the batteries. When using two 12V batteries you will need to wire them in parallel to power 12V motors and in series to power 24V motors.<br />
<br />
* In a parallel setup, the positive (red) terminals are connected together and the negative terminals are connected to the chassis. Both batteries will share the load of your system. Meaning your motor controller and motors will pull from both batteries equally. This will result in an approximately double the running time.<br />
* In a series setup, the negative terminal of Battery1 is connected to ground and the positive terminal is connected to the negative terminal of Battery2. The positive terminal of Battery2 is then connected to your robot. The way this works, is that the electricity from Battery1 travels through Battery2 and their voltage levels are added together.<br />
<br />
For charging, it is always best to be able to charge the batteries individually. <span style="color: rgb(51, 51, 51)">Batteries should never be charged in parallel.</span> They can be charged in series, as long as you have a balanced load. This means that your robot should only be pulling power from both batteries equally.<br />
<br />
'''Note:''' Always be sure to place a fuse or breaker after each positive battery terminal for safety. The fuse should be sized so that it is as close to the maximum current, without going under.<br />[[File:Battery Wiring.jpg|center|thumb|422x422px]]<br />
<br /><br />
<br />
==Electrical Battery Connectors==<br />
We typically bring out 15A or 30A connectors attached to the battery terminals to provide an easy and secure way to charge the batteries on the robot. Depending on the demands of the robot, 15 amp or 30 amp connectors are used. Please see the images below as a demonstration of proper and improper connector crimps and connectors. We only offer red and black connectors for sale, but for reference (if you buy one of our assembled robots) we include a diagram showing our standard color codes for battery connectors we use during assembly to help us distinguish between the type of battery and the voltage.<br />
[[File:TE-027-030-A.jpg|thumb]]<br />
<br /><br />
<br />
==Typical Power Wiring a Robot==<br />
There are lots of different ways to wire up a robot.<br />
[[File:TE-027-030-B.jpg|thumb]]<br />
The key things to consider are what voltages do you need and how much power the driving force for the main battery will be. We typically use 24VDC motors. They run at half the current for the same power as 12V motors so they use smaller wires, motor controllers, etc. Do you need a separate battery for the controller or on-board computer, etc? How are you going to get those voltages (multiple batteries, voltage regulators, etc.)? How much of a load will be on each voltage so your batteries and/or regulators are sized properly? This will help you size your batteries. Simple math states that if you have a 1Amp load and a 10Ahr (10,000mAhr) battery, the battery will run for 10 hours in theory.<br />
<br />
===Fuses===<br />
These are great to put in all over the place to protect components, but not always necessary. Lots of devices have built in overload protection such as switching regulators, smart battery packs, etc. If you are going to put a fuse in, it should be as close to the battery as possible.<br />
<br />
===Grounding===<br />
[[File:TE-027-030-C.jpg|thumb]]<br />
This is very important! Good ground is essential to protect the robots' components and for electrical noise. We typically put a single ground lug on the aluminium chassis of the robot. All ground leads come to the same point. You do not want multiple grounding locations leading to multiple ground paths/potentials. This can cause all sorts of unexplained trouble. Care must be taken to make sure multiple grounds are not run to the same piece of equipment. This is most common with the motor controller. The signal coming in is usually carrying a ground signal as is the power to the motor controller. This results in a potential ground loop. The signal's ground typically should not be used as it's getting its ground from the power.<br />
<br />
==Electrical Motor Hookup==<br />
[[File:TE-027-030-D.jpg|thumb]]<br />
[[File:TE-027-000-E.jpg|thumb]]<br />
Electrical noise is one of the most frustrating issues when working on robots with DC motors. The EMF coming from the motors will wreak havoc on the microcontrollers, any RF equipment, or other sensitive electronic equipment. We recommend you use the following kits to wire your motors. These kits will provide the wiring from the speed/motor controller to the motors. You will need one kit per motor. Follow this link for more information on how to hook up the motors.<br />
[[File:motor wiring.jpg|center|thumb]]<br />
<br /><br />
[[Category:Electrical Engineering]]<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Lidar&diff=1931Lidar2021-09-27T15:24:04Z<p>Brent: /* 2D Lidar */</p>
<hr />
<div>LIDAR (short for Light Detection And Ranging), uses near infrared light to measure distances to objects. The narrow laser-beam that’s emitted is capable of mapping physical features at high resolutions. Offering precise positioning while targeting a wide range of materials, LIDAR is a very powerful feedback system that can be used in many robotic applications.<br />
<br />
==1D Lidar==<br />
[[File:LIDAR-Lite v3.jpg|thumb|250x250px|<sdr item id=2306>Garmin LIDAR-Lite v3</sdr item>]]<br />
<br />
===Overview===<br />
<br />
'''Obstacle Detection:''' Detects obstacles in a straight, narrow beam of light. Lidar will be more accurate (and expensive) than simple IR sensors. Lidars that detect out to 60+ feet are common.<br />
<br />
'''Ideal operating conditions:''' Lidar can become erratic when exposed to sunlight interference. Some sensors will work perfectly outside while others may be fine with ambient sunlight and have problems only when pointed towards the sun. The rest range from slightly noisy to completely unusable outside.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Data is easily processed, allowing the use of cheaper microcontrollers<br />
*Less expensive than 2D Lidar<br />
*Good detection range, update rate, and accuracy<br />
*Can be used for 1D positioning or following applications<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Only detects obstacles in a narrow beam. If these are the primary obstacle detection sensors on a robot then several of them are required and there will still be big gaps in the detection zone – between the beams and above/below them.<br />
*You may be tempted to sweep the sensor using an RC servo or something, but this generally doesn’t work very well. You’re better off buying a cheap 2D lidar at that point.<br />
*Can be vulnerable to dirt/dust and scratches.<br />
<br />
===Products===<br />
<sdr item id=2306>Garmin LIDAR-Lite v3 Laser Rangefinder</sdr item><br />
<br />
==2D Lidar==<br />
[[File:Hokuyo UST10LX 2D Lidar.jpg|thumb|250x250px|<sdr item id=2253>Hokuyo UST10LX 10m 2D Lidar</sdr item>]]<br />
<br />
===Overview===<br />
'''Obstacle Detection:''' Detects obstacles surrounding the robot. The 2D lidar generates a planar ring of points that extend to the closest obstacle in all directions. Able to create a rough map of the robot’s immediate surroundings.<br />
<br />
'''Ideal operating conditions:''' Installed at a height where obstacles are expected to be encountered. Some Lidars are sensitive to sunlight, depending on the specific model and design.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Less data to process than a 3D Lidar<br />
*Much more coverage than 1D sensors like IR and 1D Lidar<br />
*Can be used to generate a 2D map and utilize 2D SLAM<br />
*Good detection range and update rate<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Can only see obstacles on a single horizontal plane, unable to see above and below the sensor<br />
*More data than 1D sensors, usually requiring a small computer to use<br />
*Unreliable when the robot pitches and rolls, due to the detection plane intersecting the ground<br />
<br />
===SLAM Application===<br />
<br />
{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=hi5jeEBxzEM<br />
|alignment=center<br />
|dimensions=600<br />
}}<br />
<br />
===Products===<br />
<sdr item id=1177>Hokuyo URG-04LX-UG01 4 meter 2D Lidar</sdr item><br />
<br />
<sdr item id=2253>Hokuyo UST-10LX 10 meter 2D Lidar</sdr item><br />
<br />
<sdr item id=2239>Hokuyo UST-20LX 20 meter 2D Lidar</sdr item><br />
<br />
<sdr item id=2252>Hokuyo UST-30LX 30 meter 2D Lidar</sdr item><br />
<br />
<sdr item id=3146>RPLIDAR A1 - 360 degree 12 meter 2D LIDAR</sdr item><br />
<br />
<sdr item id=3147>RPLIDAR A2 - 360 degree 16 meter 2D LIDAR</sdr item><br />
<br />
<sdr item id=3148>RPLIDAR S1 - 360 degree 40 meter 2D LIDAR Outdoor Capable</sdr item><br />
==3D Lidar==<br />
[[File:Hokuyo 3D Lidar YVT-35LX.jpg|thumb|250x250px|<sdr item id=2636>Hokuyo 3D LIDAR YVT-25LX</sdr item>]]<br />
<br />
===Overview===<br />
<br />
'''Obstacle Detection:''' Detects obstacles surrounding the robot in 3D space. The 3D lidar generates a cloud of points that extend out from the sensor in all directions horizontally and 30 degrees above and below the sensor vertically. Able to create a detailed map of the robot’s surroundings, including obstacles above the robot and below the lidar.<br />
<br />
'''Ideal operating conditions:''' Installed on the top of the robot, low enough to the ground where the 30 degree window is able to see the area directly in front of the robot. Some lidars are sensitive to sunlight, depending on the specific model and design.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Full coverage of the robot’s environment<br />
*Can be used to generate a 3D map and utilize 3D SLAM<br />
*Reliable due to the large number of data points to base position off of<br />
*Works in 3D environments where the robot is pitching, rolling, and changing in elevation. Can generate 3D position and orientation estimates.<br />
*Can detect obstacles above and below itself, which a 2D lidar would miss.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Expensive<br />
*Generates a large amount of data, which requires a more powerful computer to process and make use of<br />
*Limited viewing angle, restricts where the sensor can be placed effectively<br />
<br />
===Example Application===<br />
<br />
Footage of the <sdr item id=2858>SPAR autonomous security robot</sdr item>. 3D SLAM footage starts at 0:24.<br />
<br />
{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/W0yZ29EPBMQ<br />
|alignment=center<br />
|dimensions=600<br />
}}<br />
<br />
===Products===<br />
<sdr item id=2636> Hokuyo YVT-35 LX 3D Lidar</sdr item><br><sdr item id=2828> Hokuyo YVT-35 LX 3D Lidar (used)</sdr item><br />
<br />
[[Category:Sensors]]<br />
[[Category:Autonomous]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Wi-Fi_Robots&diff=1930Wi-Fi Robots2021-08-04T12:34:01Z<p>Brent: </p>
<hr />
<div>This is a guide to working with our WiFi [[Control System|control]] packages. These packages come in variants with and without [[encoders]].<br />
<br />
*<sdr item id=1440>Programmable WiFi Custom Control Interface Package</sdr item><br />
*<sdr item id=3129>Programmable WiFi Custom Control Interface Package with Encoder Reading</sdr item><br />
<br />
The WiFi control package is implemented on our <sdr item id=1320>Programmable WiFi Mobile 4WD Robot Development Platform</sdr item> and can be selected as an option on most of our <sdr category id=195>Robot Kits</sdr category> and <sdr category id=194>Programmable Robots</sdr category>.<br />
<br />
<br />{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=zs-IACx59bY<br />
|alignment=center<br />
|dimensions=600<br />
}}<br /><br />
<br />
===Setup===<br />
<br />
====Wireless Connectivity====<br />
<br />
=====Built-in Network=====<br />
The robot comes with its own wireless network. Just turn it on and wait for WiFiATR-Setup to appear on your device's network list. Next, open your browser and navigate to http://wifi-atr.local/ (if this doesn't work, try http://wifi-atr/ some devices work differently for this).<br />
<br />
Once you have the interface pulled up (image below), you can either start using the robot or connect it to an existing Wi-Fi network.<br />
[[File:WiFiATR GUI.png|center|thumb|500x500px]]<br />
<br />
=====Connect to Existing Network=====<br />
To connect to an existing network, click the gear icon on the GUI. This will being you to a configuration page(below). From here, click "Fetch Names" to load available networks. <br />
[[File:Configuration page for WiFiATR.png|center|thumb|500x500px]]<br />
Once the networks load, select one from the drop-down list and type in the password for the network. Once you are ready to connect, click the "Submit" button and the robot will reboot and connect to the new network. If you mistype the password or something goes wrong while connecting, don't worry, the setup network will remain available for reconfiguration.<br />
<br />
<br /><br />
<br />
===Camera===<br />
Digital camera with pan and tilt controls. You can control the pan and tilt with the left virtual joystick on the web interface. You are also able to center the camera with a button in the GUI.<br />
[[File:TP-600-165 Camera.jpg|center|thumb|500x500px]]<br />
<br />
===Add-Ons===<br />
The Programmable WiFi Mobile 4WD Robot Development Platform (TP-600-165) comes with 4 relays that can be turned on and off from the web GUI. This allows you to add a variety of devices to the robot and control them without even needing to modify the code running on the robot. <br />
<br />
The robot's hardware also supports multiple extra PWM deices, analog and digital inputs, digital outputs, UART serial devices, and more! <br />
<br /><br />
<br />
===Control Package===<br />
We also offer a WiFi control package that can be integrated into a large number of our robots. This essentially adds the ability to control a wide range of our robot platforms over WiFi from a smartphone/tablet/computer. You can easily plug in a USB webcam, add servos, connect to the relays, etc.<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Wi-Fi_Robots&diff=1929Wi-Fi Robots2021-08-04T12:33:54Z<p>Brent: </p>
<hr />
<div>This is a guide to working with our WiFi [[Control System|control]] packages. These packages come in variants with and without [[encoders]].<br />
<br />
*<sdr item id=1440>Programmable WiFi Custom Control Interface Package</sdr item><br />
*<sdr item id=3129>Programmable WiFi Custom Control Interface Package with Encoder Reading</sdr item><br />
<br />
The WiFi control package is implemented on our <sdr item id=1320>Programmable WiFi Mobile 4WD Robot Development Platform</sdr item> and can be selected as an option on most of our <sdr category id=195>Robot Kits</sdr category> and <sdr category id=194>Programmable Robots</sdr category>.<br />
<br />
<nowiki><br></nowiki>{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=zs-IACx59bY<br />
|alignment=center<br />
|dimensions=600<br />
}}<br /><br />
<br />
===Setup===<br />
<br />
====Wireless Connectivity====<br />
<br />
=====Built-in Network=====<br />
The robot comes with its own wireless network. Just turn it on and wait for WiFiATR-Setup to appear on your device's network list. Next, open your browser and navigate to http://wifi-atr.local/ (if this doesn't work, try http://wifi-atr/ some devices work differently for this).<br />
<br />
Once you have the interface pulled up (image below), you can either start using the robot or connect it to an existing Wi-Fi network.<br />
[[File:WiFiATR GUI.png|center|thumb|500x500px]]<br />
<br />
=====Connect to Existing Network=====<br />
To connect to an existing network, click the gear icon on the GUI. This will being you to a configuration page(below). From here, click "Fetch Names" to load available networks. <br />
[[File:Configuration page for WiFiATR.png|center|thumb|500x500px]]<br />
Once the networks load, select one from the drop-down list and type in the password for the network. Once you are ready to connect, click the "Submit" button and the robot will reboot and connect to the new network. If you mistype the password or something goes wrong while connecting, don't worry, the setup network will remain available for reconfiguration.<br />
<br />
<br /><br />
<br />
===Camera===<br />
Digital camera with pan and tilt controls. You can control the pan and tilt with the left virtual joystick on the web interface. You are also able to center the camera with a button in the GUI.<br />
[[File:TP-600-165 Camera.jpg|center|thumb|500x500px]]<br />
<br />
===Add-Ons===<br />
The Programmable WiFi Mobile 4WD Robot Development Platform (TP-600-165) comes with 4 relays that can be turned on and off from the web GUI. This allows you to add a variety of devices to the robot and control them without even needing to modify the code running on the robot. <br />
<br />
The robot's hardware also supports multiple extra PWM deices, analog and digital inputs, digital outputs, UART serial devices, and more! <br />
<br /><br />
<br />
===Control Package===<br />
We also offer a WiFi control package that can be integrated into a large number of our robots. This essentially adds the ability to control a wide range of our robot platforms over WiFi from a smartphone/tablet/computer. You can easily plug in a USB webcam, add servos, connect to the relays, etc.<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Wi-Fi_Robots&diff=1928Wi-Fi Robots2021-08-04T12:31:20Z<p>Brent: </p>
<hr />
<div>This is a guide to working with our WiFi [[Control System|control]] packages. These packages come in variants with and without [[encoders]].<br />
<br />
*<sdr item id=1440>Programmable WiFi Custom Control Interface Package</sdr item><br />
*<sdr item id=3129>Programmable WiFi Custom Control Interface Package with Encoder Reading</sdr item><br />
<br />
The WiFi control package is implemented on our <sdr item id=1320>Programmable WiFi Mobile 4WD Robot Development Platform</sdr item> and can be selected as an option on most of our <sdr category id=195>Robot Kits</sdr category> and <sdr category id=194>Programmable Robots</sdr category>.{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=zs-IACx59bY<br />
|alignment=center<br />
|dimensions=600<br />
}}<br /><br />
<br />
===Setup===<br />
<br />
====Wireless Connectivity====<br />
<br />
=====Built-in Network=====<br />
The robot comes with its own wireless network. Just turn it on and wait for WiFiATR-Setup to appear on your device's network list. Next, open your browser and navigate to http://wifi-atr.local/ (if this doesn't work, try http://wifi-atr/ some devices work differently for this).<br />
<br />
Once you have the interface pulled up (image below), you can either start using the robot or connect it to an existing Wi-Fi network.<br />
[[File:WiFiATR GUI.png|center|thumb|500x500px]]<br />
<br />
=====Connect to Existing Network=====<br />
To connect to an existing network, click the gear icon on the GUI. This will being you to a configuration page(below). From here, click "Fetch Names" to load available networks. <br />
[[File:Configuration page for WiFiATR.png|center|thumb|500x500px]]<br />
Once the networks load, select one from the drop-down list and type in the password for the network. Once you are ready to connect, click the "Submit" button and the robot will reboot and connect to the new network. If you mistype the password or something goes wrong while connecting, don't worry, the setup network will remain available for reconfiguration.<br />
<br />
<br /><br />
<br />
===Camera===<br />
Digital camera with pan and tilt controls. You can control the pan and tilt with the left virtual joystick on the web interface. You are also able to center the camera with a button in the GUI.<br />
[[File:TP-600-165 Camera.jpg|center|thumb|500x500px]]<br />
<br />
===Add-Ons===<br />
The Programmable WiFi Mobile 4WD Robot Development Platform (TP-600-165) comes with 4 relays that can be turned on and off from the web GUI. This allows you to add a variety of devices to the robot and control them without even needing to modify the code running on the robot. <br />
<br />
The robot's hardware also supports multiple extra PWM deices, analog and digital inputs, digital outputs, UART serial devices, and more! <br />
<br /><br />
<br />
===Control Package===<br />
We also offer a WiFi control package that can be integrated into a large number of our robots. This essentially adds the ability to control a wide range of our robot platforms over WiFi from a smartphone/tablet/computer. You can easily plug in a USB webcam, add servos, connect to the relays, etc.<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Autonomous:Custom_Autonomous_Robots&diff=1924Autonomous:Custom Autonomous Robots2021-05-13T20:34:26Z<p>Brent: Changed categories.</p>
<hr />
<div>Autonomous robots can be some of the most complex robots to create. They are an intricate combination of mechanical engineering, electrical wiring, and programming. Over the last twenty years, SuperDroid Robots has made many custom autonomous robots.<br />
<br />
Due to confidentiality agreements and NDAs we can't discuss some of our robots. Below are some of the autonomous robots that we can share! These robots are in use across the globe solving unique problems. If you have a robot that needs to be made into a reality, contact us! We specialize in confidentiality and can sign NDAs to protect your intellectual property.<br />
<br />
== VIPR Autonomous Platforms ==<br />
The VIPR is a configurable autonomous robotic platform built by SuperDroid Robots. This robot accepts programmed waypoints and then develops an optimal path. Powerful LiFePO4 batteries and a set of 250W motors power this mobile platform. Using a suite of advanced cameras and sensors, the VIPR detects and avoids obstacles. The path updates in real-time to address obstacles and reach its destination. The VIPR-L offers additional space for larger footprint items.<br />
<br />
Interested in learning more about this robot? Click the buttons below to view our VIPR Platforms!<br />
[[File:TP-301-002 B.jpg|center|200 px]]<br />
<br />
== Security and Patrol Robot ==<br />
SuperDroid Robots has recently begun producing autonomous security systems. These robots provide a layer of protection to properties, while minimizing the risk of injury to guards and on-site personnel. They can be controlled through a GUI interface, or be set to patrol set waypoints. A combination of 3D LIDAR and SLAM provides this security robot with the ability to detect and avoid obstacles.<br />
<br />
Interested in learning more about this robot? Click the button below to visit our Security Robot page!<br />
{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=W0yZ29EPBMQ<br />
|alignment=center<br />
|dimensions=600<br />
}}<br />
<br />
== 3D Mapping Robot ==<br />
The purpose of this robot is to access and document unexplored environments! The HD2 treaded chassis allows for travel in all manner of terrain. The robot uses its onboard 3D LIDAR to generate a 3D map of its surroundings. This map is then used for autonomous navigation and route planning. The robot has an Autonomous ROS control package to allow for further modifications.<br />
<br />
Interested in learning more about this robot? Click the button below to see the product details page!<br />
<br />
[[File:HD2 Autonomous Vision Robot.png|center|200 px]]<br />
<br />
== Programmable HK-1000 ==<br />
This is a custom programmable robot built to tackle heavy loads and tricky terrain. The HK-1000-DM4-E platform provides ample storage space for the internal systems and more. It uses a combination of the NVIDIA Jetson Xavier and our own ROS control system. These systems allow for easy programming and alteration of the robots autonomous system.<br />
<br />
Interested in learning more about this robot? Click the button below to see the product details page!<br />
<br />
[[File:TP-195-004-A.jpg|center|200 px]]<br />
<br />
== ROS Mecanum Robot with RC Override ==<br />
We built a series of these mecanum robots for a client. The chassis is a modified version of our standard IG32 SB Mecanum Robot. These robots use stronger batteries and a flat chassis surface. Our custom ROS control package controls the robot using an Odriod XU4. The override allows for WiFi control, as well as close-range RC control. The use of an ROS framework in Linux allows for the application of custom modifications!<br />
<br />
Interested in learning more about this robot? Click the button below to see the product details page!<br />
<br />
[[File:TP-500-319 A.jpg|center|200 px]]<br />
<br />
== LIDAR SLAM Autonomous Platform ==<br />
This autonomous robot utilizes a combination of 3D LIDAR and SLAM technology. Our ROS autonomous control package and custom programming give this robot the ability to detect and avoid obstacles. The addition of a fully-featured GUI and easy to customize system make this robot extremely versatile!<br />
<br />
[[File:TP-500-295.jpg|center|200 px]]<br />
<br />
== Mini-SLAM Platform ==<br />
This autonomous robot utilizes a combination of ROS and SLAM technology. A combination of SLAM, sensor fusion, and path planning make this robot capable of precise autonomous travel. Our ROS autonomous control system and Linux framework make this robot easy to customize!<br />
<br />
[[File:TP-500-306 A.jpg|center|200 px]]<br />
<br />
== Agricultural Research Robots ==<br />
<br />
These robots are built to operate autonomously in an agricultural environment. They can autonomously retrieve soil samples to gather data on soil temperature, pH levels, and carbon monoxide readings. In order to operate in crop fields and greenhouses these robots have a durable chassis. A combination of 3D camera, long range LIDAR, and multiple sensor suites make autonomous pathing easy. A long range IP radio serves as a communication hub to provide corrections and bring centimeter precision to positioning and pathing.<br />
<br />
{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=CKYJO-Ha80E<br />
|alignment=center<br />
|dimensions=600<br />
}}<br />
<br />
== Project Wingwalker ==<br />
Wingwalker is a robot built for the US Air Force as a collaboration with another company. The purpose of the robot was to scan the wings of a plane with an ultrasonic sensor. This autonomous system would collect readings to measure corrosion in rivets and panels. The robot achieved this by positioning itself using two lasers on the front and back of the chassis. The lasers help the robot triangulate its position and send the data to its onboard computer. The system would then plot the next course and track its progress using an IMU system and encoders.<br />
<br />
{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=QgFJPPur3OM<br />
|alignment=center<br />
|dimensions=600<br />
}}<br />
<br />
== Project Pressure WashBot ==<br />
Washbot is an autonomous industrial cleaning robot. The purpose of the robot was to autonomously control a 360° pressure washer nozzle. Washbot's purpose is to clean the interior of industrial boilers. Controlled via a tethered cable, the operator could set a variety of criteria. This includes number of passes, degree of the nozzle, and distance between passes. This autonomous robot even has a nose camera that extends for visual inspections! The command system allows for the operator to repeated commands if necessary.<br />
<br />
Due to the high water pressure, we developed a series of safety interlocks. This provides both the robot and operator additional safety during operation.<br />
<br />
== Project Heavy Lifter ==<br />
We partnered with another company to develop a set of large robot platforms. They had an on board computer, 3D camera, SICK Lidar and GPS. The motors were hub driven and each wheel was mounted to stepper motor to allow to robot to drive in any direction.<br />
<br />
== Project Border Patrol ==<br />
We built a series of surveillance and image recognition robots for border patrol purposes. There were 6 pan and tilt units on each robot capable of 360 degree pan and 180 degree tilt. A high quality camera with 60 X optical zoom was mounted to each pan and tilt unit. Sonar and Laser were also mounted to each pan and tilt for more sensor data. There was a compass, IMU, Scanning Laser Rangefinder, and GPS designed into the robot to aid in autonomous navigation. Three on board computers were used for image recognition and autonomous navigation. A large rack of removable batteries was designed into the chassis for 8 hours of continuous run time.<br />
<br />
{{#evt:<br />
service=youtube<br />
|id=https://www.youtube.com/watch?v=Odwz3mfs25s<br />
|alignment=center<br />
|dimensions=600<br />
}}</div>Brenthttps://wiki.sdrobots.com/index.php?title=Main_Page&diff=1923Main Page2021-05-13T20:31:18Z<p>Brent: /* Support Site Category Trees */</p>
<hr />
<div><br />
{{DISPLAYTITLE:SuperDroid Robots Support }}<br />
<br />
Welcome to the SuperDroid Robots Support Wiki! <br />
<br />
You'll find our support articles, FAQ's, and knowledge base for our entire line of robots. Also found here are our guides and tutorials on basic tool usage, part recommendations, and how to build your own robot!<br />
<br />
Use the search bar or go through our categories to find the information you're looking for. If you need further assistance or can't find an answer, email our team of engineers and technicians using the following links:<br />
<br />
*General questions/comments at [https://www.superdroidrobots.com/shop/contactus.aspx SuperDroid Robots Contact Page].<br />
*For Custom Solutions, please fill out this [https://www.superdroidrobots.com/shop/custom.aspx/custom-robot-request/87/ request form].<br />
*[https://www.superdroidrobots.com/shop/custom.aspx/help/107/ For help placing order, terms, and other related links]<br />
<br />
To shop our products, follow the links below:<br />
<br />
*[https://www.superdroidrobots.com/shop/default.aspx SuperDroid Robots: Robots, Parts, and Custom Solutions]<br />
*[https://www.sdrtactical.com/ SDR Tactical: Tactical Surveillance and EOD Robots]<br />
<br />
==Support Categories==<br />
[[File:Robots_Category_Button.png|alt=Go to Robot Category|link=Category:Robots|300x300px]][[File:Components_Category_Button.png|alt=Go to Components Category|link=Category:Components|300x300px]][[File:Build Button.png|alt=Go to How to Category|link=Category:How_to_Build_a_Robot|frameless]]<br />
<br />
====Support Site Category Trees====<br />
<br />
<categorytree depth="2" mode="pages">Robots</categorytree><categorytree mode="pages" depth="2">Components</categorytree><categorytree mode="pages" depth="1">How to Build a Robot</categorytree><br />__NOTOC__</div>Brenthttps://wiki.sdrobots.com/index.php?title=Control_System&diff=1916Control System2021-04-29T14:32:54Z<p>Brent: /* Autonomous Control */</p>
<hr />
<div>A control system is the combination of components and software involved in collecting and transmitting inputs from the remote operator to the robot and turning the inputs into commands for the robot's actuators, lights, and other desired outputs. Some control systems also send information about the robot back to the remote and display it for the operator.<br />
<br />
There are several options for controlling your robot. The big division of remote control is between Analog versus Digital Control.<br />
==Analog==<br />
Analog Control provides the simplest link between the operator and the robot possible, it is, however, one way. Video is typically transmitted back over an open analog channel. Analog video transmissions can be viewed on any receiver, both yours or anyone else. Analog Remotes similar to R/C Aircraft can be used to control the robot, or a custom controller can be made to control and display the video in a case. We offer several types of analog controllers.<br />
<br />
===RC Control: (Handheld wireless control devices)===<br />
[[File:Flysky FS-i6 Remote.jpg|thumb|<sdr item id=2617>Flysky FS-i6 Transmitter</sdr item>]]<br />
<br />
*<sdr item id=2617>FlySky FS-i6 2.4G 6CH Transmitter & Receiver</sdr item><br />
*<sdr item id=2892>FlySky FS-i6X 2.4G 10CH Transmitter & Receiver</sdr item><br />
*<sdr item id=2794>FlySky FS-i6s 2.4G 10CH Transmitter & Receiver</sdr item><br />
<br />
*<sdr item id=2155>Spektrum DSMX DX6i Transmitter Only</sdr item> This is a 6-channel 2.4GHz DSMX aircraft system transmitter.<br />
*<sdr item id=2150>Spektrum USB-Interface</sdr item> This is a 5-channel 2.4GHz DSM2 aircraft system transmitter. It replaces the DX5e transmitter (as of 12/18/15).<br />
*<sdr item id=1331>Spektrum DSM2 AIRMOD w/AR7010 FUT-Compatible</sdr item> Each module system includes everything you need to equip your Futaba module-based system with the interference-free, glitch-free precision of DSM2.<br />
*<sdr item id=1030>Spektrum AR6110e DSM2 ML 6Ch Fail Safe Receiver</sdr item> Spektrum’s 2.4GHz DSM2 technology gets even smaller with the AR6110e 6-channel DSM2 Microlite Park Flyer Receiver with End Pins. Ideal for compact airframes or small robots!<br />
*<sdr item id=995>Spektrum Remote Receiver Extension</sdr item> - 36 inch This is a 36-inch remote receiver extension for Spektrum.<br />
*<sdr item id=994>Spektrum Remote Receiver</sdr item> The remote receiver can be used as a replacement for the AR6200, AR7000 and the AR9000 remote receivers. It can also be used as an optional fourth remote receiver for the AR9000.<br />
<br />
Picture<br />
For more help with Remote Control (RC), please visit our [[RC and Servo Support|Remote Control Support Page.]]<br />
==Digital Control==<br />
Digital Control of a robot uses Ethernet over a wireless link to control the robot. The wireless link will be over standard WiFi, CoFDM, or a Dual Band Wireless Link similar to WiFi. Our Digital Remotes are enclosed in a Pelican (or Pelican-like) case that houses the radio, control joysticks and switches, and the video monitor.<br />
<br />
===Digital Wireless Control Systems===<br />
<br />
*<sdr category id=138> Routers and Bridges</sdr category>: Routers and Bridges to provide Wireless capabilities to your robot!<br />
*<sdr category id=139> Wi-Fi Control Packages</sdr category>: Pre-configured WiFi control systems to get your robot up and running! These control systems come assembled and tested by our staff to ensure out-of-the-box functionality.<br />
*<sdr category id=159> XBee, Zigbee, and RF Wireless Communication</sdr category>: These modules allow a very reliable and simple communication between anything with a serial port! Point to point and multi-point networks are supported.<br />
*<sdr category id=100> Tactical Robot Controllers</sdr category>: There are many ways to control a robot. We offer a wide range of military grade tactical controllers. Find the controller that works best for you.<br />
*<sdr category id=160> Antennas and Pigtails</sdr category>: 2.4 Ghz antennas and pigtails for wireless routers and radios<br />
<br />
For more help with Remote Control (RC), please visit the following support pages:<br />
[[RC and Servo Support|Remote Control Support Page]]<br />
[[Wi-Fi Robots|Network and WiFi Support Page]]<br />
[[XBee Wireless Serial Module|Wireless Serial Support Page]]<br />
[[:Category:Tactical Robots|Tactical Robot Support Page]]<br />
Pictures<br />
<br />
===Complete Control Packages===<br />
We offer <sdr category id=206> Complete Control Packages</sdr category> to control the robots. These are complete systems that are custom configured to your needs that will connect your robot.<br />
<br />
*<sdr item id=2355> Programmable RC Control Interface Package</sdr item>: This package offers the simplicity of manual RC control while having access to the diversity of Arduino I/O.<br />
*<sdr item id=2353> Programmable GPS Navigation Package</sdr item>: This package includes all the items you would need to make a robot drive to GPS waypoints autonomously.<br />
*<sdr item id=1846> WiFi Remote System with Tablet OCU</sdr item>: This package is for controlling SuperDroid Robots. It contains a WiFi Router, Serial Bridge, Power Supplies, Custom Controller Board, Video Server, Tablet with custom robot control and interface with video monitoring.<br />
*<sdr item id=1727> Programmable xBee Control Interface Package</sdr item>: This package allows you to control a robot, out of the box, using the power of Arduino and xBee. The remote comes standard with an ABS enclosure and your option of 2, 3, or 4-axis joystick.Full source code is provided!<br />
*<sdr item id=1440> Programmable WiFi Custom Control Interface Package</sdr item>: Fully configured, tested, and supported. This package comes with a network device, Arduino Mega control board, Arduino Ethernet Shield V2, SDR Arduino Mega Sensor Shield, and a 4x TTL relay board. It will fit on top of any of our chassis options.<br />
*<sdr item id=2369> ROS Autonomous Control Package</sdr item>: This package provides a completely assembled and configured Robot Operating System (ROS). ROS is a Linux based meta operating system for your robot with a massive open source community.<br />
<br />
===Autonomous Control===<br />
This is a huge topic due to all of the self-driving cars, etc. This, however, is not a simple or trivial task. Google has spent billions of dollars in development.<br />
<br />
If you are interested in building an autonomous robot, then please follow these links to help get you started.<br />
<br />
*[[:Category:Autonomous|Autonomous Robots Hub]]: Collection of support pages about Autonomous Robots and related topics.<br />
*[[:Category:Sensors|Sensors Hub]]: Collection of support pages about Sensors and related topics.<br />
*<sdr category id=194>Programmable Robots:</sdr category> Programable Robots. Autonomous Robots. Robots that think on their own and do set tasks. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=206>Control Systems:</sdr category> These custom control systems will allow you to control your robot wirelessly, autonomously, or both. Autonomous GPS navigation. Control and monitoring your robot wirelessly over WiFi. If you need something custom, contact us.<br />
*<sdr category id=75>Programmable SDR Robots:</sdr category> These programmable robots are designed by SuperDroid Robots. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=35>Sensors:</sdr category> We have sensors to help you detect gasses, conduct surveillance, and measure performance. These sensors can help toward building an autonomous robot.<br />
*[[Autonomous:Custom Autonomous Robots|Autonomous Robot Services]]: Autonomous robots are a challenge as they require a precise blend of mechanical, electrical, and software engineering. We have the capabilities to design and develop the autonomous solutions you require.<br />
*[[Autonomous Robots Hub|Autonomous WiFi Robot Arduino Robot Programming:]] The page describes the method and gives examples of how we programmed the Free Autonomous WiFi Robot Arduino Robot in our give away.<br />
*[[:Category:Sensors|Sensor Support:]] We carry a large array of sensors to enable you to develop a smart and autonomous robotic solution.<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Control_System&diff=1915Control System2021-04-29T14:32:02Z<p>Brent: /* Autonomous Control */</p>
<hr />
<div>A control system is the combination of components and software involved in collecting and transmitting inputs from the remote operator to the robot and turning the inputs into commands for the robot's actuators, lights, and other desired outputs. Some control systems also send information about the robot back to the remote and display it for the operator.<br />
<br />
There are several options for controlling your robot. The big division of remote control is between Analog versus Digital Control.<br />
==Analog==<br />
Analog Control provides the simplest link between the operator and the robot possible, it is, however, one way. Video is typically transmitted back over an open analog channel. Analog video transmissions can be viewed on any receiver, both yours or anyone else. Analog Remotes similar to R/C Aircraft can be used to control the robot, or a custom controller can be made to control and display the video in a case. We offer several types of analog controllers.<br />
<br />
===RC Control: (Handheld wireless control devices)===<br />
[[File:Flysky FS-i6 Remote.jpg|thumb|<sdr item id=2617>Flysky FS-i6 Transmitter</sdr item>]]<br />
<br />
*<sdr item id=2617>FlySky FS-i6 2.4G 6CH Transmitter & Receiver</sdr item><br />
*<sdr item id=2892>FlySky FS-i6X 2.4G 10CH Transmitter & Receiver</sdr item><br />
*<sdr item id=2794>FlySky FS-i6s 2.4G 10CH Transmitter & Receiver</sdr item><br />
<br />
*<sdr item id=2155>Spektrum DSMX DX6i Transmitter Only</sdr item> This is a 6-channel 2.4GHz DSMX aircraft system transmitter.<br />
*<sdr item id=2150>Spektrum USB-Interface</sdr item> This is a 5-channel 2.4GHz DSM2 aircraft system transmitter. It replaces the DX5e transmitter (as of 12/18/15).<br />
*<sdr item id=1331>Spektrum DSM2 AIRMOD w/AR7010 FUT-Compatible</sdr item> Each module system includes everything you need to equip your Futaba module-based system with the interference-free, glitch-free precision of DSM2.<br />
*<sdr item id=1030>Spektrum AR6110e DSM2 ML 6Ch Fail Safe Receiver</sdr item> Spektrum’s 2.4GHz DSM2 technology gets even smaller with the AR6110e 6-channel DSM2 Microlite Park Flyer Receiver with End Pins. Ideal for compact airframes or small robots!<br />
*<sdr item id=995>Spektrum Remote Receiver Extension</sdr item> - 36 inch This is a 36-inch remote receiver extension for Spektrum.<br />
*<sdr item id=994>Spektrum Remote Receiver</sdr item> The remote receiver can be used as a replacement for the AR6200, AR7000 and the AR9000 remote receivers. It can also be used as an optional fourth remote receiver for the AR9000.<br />
<br />
Picture<br />
For more help with Remote Control (RC), please visit our [[RC and Servo Support|Remote Control Support Page.]]<br />
==Digital Control==<br />
Digital Control of a robot uses Ethernet over a wireless link to control the robot. The wireless link will be over standard WiFi, CoFDM, or a Dual Band Wireless Link similar to WiFi. Our Digital Remotes are enclosed in a Pelican (or Pelican-like) case that houses the radio, control joysticks and switches, and the video monitor.<br />
<br />
===Digital Wireless Control Systems===<br />
<br />
*<sdr category id=138> Routers and Bridges</sdr category>: Routers and Bridges to provide Wireless capabilities to your robot!<br />
*<sdr category id=139> Wi-Fi Control Packages</sdr category>: Pre-configured WiFi control systems to get your robot up and running! These control systems come assembled and tested by our staff to ensure out-of-the-box functionality.<br />
*<sdr category id=159> XBee, Zigbee, and RF Wireless Communication</sdr category>: These modules allow a very reliable and simple communication between anything with a serial port! Point to point and multi-point networks are supported.<br />
*<sdr category id=100> Tactical Robot Controllers</sdr category>: There are many ways to control a robot. We offer a wide range of military grade tactical controllers. Find the controller that works best for you.<br />
*<sdr category id=160> Antennas and Pigtails</sdr category>: 2.4 Ghz antennas and pigtails for wireless routers and radios<br />
<br />
For more help with Remote Control (RC), please visit the following support pages:<br />
[[RC and Servo Support|Remote Control Support Page]]<br />
[[Wi-Fi Robots|Network and WiFi Support Page]]<br />
[[XBee Wireless Serial Module|Wireless Serial Support Page]]<br />
[[:Category:Tactical Robots|Tactical Robot Support Page]]<br />
Pictures<br />
<br />
===Complete Control Packages===<br />
We offer <sdr category id=206> Complete Control Packages</sdr category> to control the robots. These are complete systems that are custom configured to your needs that will connect your robot.<br />
<br />
*<sdr item id=2355> Programmable RC Control Interface Package</sdr item>: This package offers the simplicity of manual RC control while having access to the diversity of Arduino I/O.<br />
*<sdr item id=2353> Programmable GPS Navigation Package</sdr item>: This package includes all the items you would need to make a robot drive to GPS waypoints autonomously.<br />
*<sdr item id=1846> WiFi Remote System with Tablet OCU</sdr item>: This package is for controlling SuperDroid Robots. It contains a WiFi Router, Serial Bridge, Power Supplies, Custom Controller Board, Video Server, Tablet with custom robot control and interface with video monitoring.<br />
*<sdr item id=1727> Programmable xBee Control Interface Package</sdr item>: This package allows you to control a robot, out of the box, using the power of Arduino and xBee. The remote comes standard with an ABS enclosure and your option of 2, 3, or 4-axis joystick.Full source code is provided!<br />
*<sdr item id=1440> Programmable WiFi Custom Control Interface Package</sdr item>: Fully configured, tested, and supported. This package comes with a network device, Arduino Mega control board, Arduino Ethernet Shield V2, SDR Arduino Mega Sensor Shield, and a 4x TTL relay board. It will fit on top of any of our chassis options.<br />
*<sdr item id=2369> ROS Autonomous Control Package</sdr item>: This package provides a completely assembled and configured Robot Operating System (ROS). ROS is a Linux based meta operating system for your robot with a massive open source community.<br />
<br />
===Autonomous Control===<br />
This is a huge topic due to all of the self-driving cars, etc. This, however, is not a simple or trivial task. Google has spent billions of dollars in development.<br />
<br />
If you are interested in building an autonomous robot, then please follow these links to help get you started.<br />
<br />
*[[:Category:Autonomous|Autonomous Robots Hub]]: Collection of support pages about Autonomous Robots and related topics.<br />
*[[:Category:Sensors|Sensors Hub]]: Collection of support pages about Sensors and related topics.<br />
*<sdr category id=194>Programmable Robots:</sdr category> Programable Robots. Autonomous Robots. Robots that think on their own and do set tasks. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=206>Control Systems:</sdr category> These custom control systems will allow you to control your robot wirelessly, autonomously, or both. Autonomous GPS navigation. Control and monitoring your robot wirelessly over WiFi. If you need something custom, contact us.<br />
*<sdr category id=75>Programmable SDR Robots:</sdr category> These programmable robots are designed by SuperDroid Robots. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=35>Sensors:</sdr category> We have sensors to help you detect gasses, conduct surveillance, and measure performance. These sensors can help toward building an autonomous robot.<br />
*[[Autonomous Robots Hub|Build an Autonomous Robot]]: Bought one of our robots? Want to make it autonomous? Start here! We walk you through design decisions and the required components for you to develop your own autonomous robot.<br />
*[[Autonomous:Custom Autonomous Robots|Autonomous Robot Services]]: Autonomous robots are a challenge as they require a precise blend of mechanical, electrical, and software engineering. We have the capabilities to design and develop the autonomous solutions you require.<br />
*[[Autonomous Robots Hub|Autonomous WiFi Robot Arduino Robot Programming:]] The page describes the method and gives examples of how we programmed the Free Autonomous WiFi Robot Arduino Robot in our give away.<br />
*[[:Category:Sensors|Sensor Support:]] We carry a large array of sensors to enable you to develop a smart and autonomous robotic solution.<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Control_System&diff=1914Control System2021-04-29T14:31:14Z<p>Brent: /* Autonomous Control */</p>
<hr />
<div>A control system is the combination of components and software involved in collecting and transmitting inputs from the remote operator to the robot and turning the inputs into commands for the robot's actuators, lights, and other desired outputs. Some control systems also send information about the robot back to the remote and display it for the operator.<br />
<br />
There are several options for controlling your robot. The big division of remote control is between Analog versus Digital Control.<br />
==Analog==<br />
Analog Control provides the simplest link between the operator and the robot possible, it is, however, one way. Video is typically transmitted back over an open analog channel. Analog video transmissions can be viewed on any receiver, both yours or anyone else. Analog Remotes similar to R/C Aircraft can be used to control the robot, or a custom controller can be made to control and display the video in a case. We offer several types of analog controllers.<br />
<br />
===RC Control: (Handheld wireless control devices)===<br />
[[File:Flysky FS-i6 Remote.jpg|thumb|<sdr item id=2617>Flysky FS-i6 Transmitter</sdr item>]]<br />
<br />
*<sdr item id=2617>FlySky FS-i6 2.4G 6CH Transmitter & Receiver</sdr item><br />
*<sdr item id=2892>FlySky FS-i6X 2.4G 10CH Transmitter & Receiver</sdr item><br />
*<sdr item id=2794>FlySky FS-i6s 2.4G 10CH Transmitter & Receiver</sdr item><br />
<br />
*<sdr item id=2155>Spektrum DSMX DX6i Transmitter Only</sdr item> This is a 6-channel 2.4GHz DSMX aircraft system transmitter.<br />
*<sdr item id=2150>Spektrum USB-Interface</sdr item> This is a 5-channel 2.4GHz DSM2 aircraft system transmitter. It replaces the DX5e transmitter (as of 12/18/15).<br />
*<sdr item id=1331>Spektrum DSM2 AIRMOD w/AR7010 FUT-Compatible</sdr item> Each module system includes everything you need to equip your Futaba module-based system with the interference-free, glitch-free precision of DSM2.<br />
*<sdr item id=1030>Spektrum AR6110e DSM2 ML 6Ch Fail Safe Receiver</sdr item> Spektrum’s 2.4GHz DSM2 technology gets even smaller with the AR6110e 6-channel DSM2 Microlite Park Flyer Receiver with End Pins. Ideal for compact airframes or small robots!<br />
*<sdr item id=995>Spektrum Remote Receiver Extension</sdr item> - 36 inch This is a 36-inch remote receiver extension for Spektrum.<br />
*<sdr item id=994>Spektrum Remote Receiver</sdr item> The remote receiver can be used as a replacement for the AR6200, AR7000 and the AR9000 remote receivers. It can also be used as an optional fourth remote receiver for the AR9000.<br />
<br />
Picture<br />
For more help with Remote Control (RC), please visit our [[RC and Servo Support|Remote Control Support Page.]]<br />
==Digital Control==<br />
Digital Control of a robot uses Ethernet over a wireless link to control the robot. The wireless link will be over standard WiFi, CoFDM, or a Dual Band Wireless Link similar to WiFi. Our Digital Remotes are enclosed in a Pelican (or Pelican-like) case that houses the radio, control joysticks and switches, and the video monitor.<br />
<br />
===Digital Wireless Control Systems===<br />
<br />
*<sdr category id=138> Routers and Bridges</sdr category>: Routers and Bridges to provide Wireless capabilities to your robot!<br />
*<sdr category id=139> Wi-Fi Control Packages</sdr category>: Pre-configured WiFi control systems to get your robot up and running! These control systems come assembled and tested by our staff to ensure out-of-the-box functionality.<br />
*<sdr category id=159> XBee, Zigbee, and RF Wireless Communication</sdr category>: These modules allow a very reliable and simple communication between anything with a serial port! Point to point and multi-point networks are supported.<br />
*<sdr category id=100> Tactical Robot Controllers</sdr category>: There are many ways to control a robot. We offer a wide range of military grade tactical controllers. Find the controller that works best for you.<br />
*<sdr category id=160> Antennas and Pigtails</sdr category>: 2.4 Ghz antennas and pigtails for wireless routers and radios<br />
<br />
For more help with Remote Control (RC), please visit the following support pages:<br />
[[RC and Servo Support|Remote Control Support Page]]<br />
[[Wi-Fi Robots|Network and WiFi Support Page]]<br />
[[XBee Wireless Serial Module|Wireless Serial Support Page]]<br />
[[:Category:Tactical Robots|Tactical Robot Support Page]]<br />
Pictures<br />
<br />
===Complete Control Packages===<br />
We offer <sdr category id=206> Complete Control Packages</sdr category> to control the robots. These are complete systems that are custom configured to your needs that will connect your robot.<br />
<br />
*<sdr item id=2355> Programmable RC Control Interface Package</sdr item>: This package offers the simplicity of manual RC control while having access to the diversity of Arduino I/O.<br />
*<sdr item id=2353> Programmable GPS Navigation Package</sdr item>: This package includes all the items you would need to make a robot drive to GPS waypoints autonomously.<br />
*<sdr item id=1846> WiFi Remote System with Tablet OCU</sdr item>: This package is for controlling SuperDroid Robots. It contains a WiFi Router, Serial Bridge, Power Supplies, Custom Controller Board, Video Server, Tablet with custom robot control and interface with video monitoring.<br />
*<sdr item id=1727> Programmable xBee Control Interface Package</sdr item>: This package allows you to control a robot, out of the box, using the power of Arduino and xBee. The remote comes standard with an ABS enclosure and your option of 2, 3, or 4-axis joystick.Full source code is provided!<br />
*<sdr item id=1440> Programmable WiFi Custom Control Interface Package</sdr item>: Fully configured, tested, and supported. This package comes with a network device, Arduino Mega control board, Arduino Ethernet Shield V2, SDR Arduino Mega Sensor Shield, and a 4x TTL relay board. It will fit on top of any of our chassis options.<br />
*<sdr item id=2369> ROS Autonomous Control Package</sdr item>: This package provides a completely assembled and configured Robot Operating System (ROS). ROS is a Linux based meta operating system for your robot with a massive open source community.<br />
<br />
===Autonomous Control===<br />
This is a huge topic due to all of the self-driving cars, etc. This, however, is not a simple or trivial task. Google has spent billions of dollars in development.<br />
<br />
If you are interested in building an autonomous robot, then please follow these links to help get you started.<br />
<br />
*[[:Category:Autonomous|Autonomous Robots Hub]]: Collection of support pages about Autonomous Robots and related topics.<br />
*[[:Category:Sensors|Sensors Hub]]: Collection of support pages about Sensors and related topics.<br />
*<sdr category id=157>Programmable Arduino Robots:</sdr category> These mobile UGV robots have an Arduino for their controller. These Arduino robots are easy to program and a powerful processor allowing the user to create autonomous robots.<br />
*<sdr category id=194>Programmable Robots:</sdr category> Programable Robots. Autonomous Robots. Robots that think on their own and do set tasks. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=206>Control Systems:</sdr category> These custom control systems will allow you to control your robot wirelessly, autonomously, or both. Autonomous GPS navigation. Control and monitoring your robot wirelessly over WiFi. If you need something custom, contact us.<br />
*<sdr category id=75>Programmable SDR Robots:</sdr category> These programmable robots are designed by SuperDroid Robots. They range from customized Arduino WiFi robots to programmable tactical robots.<br />
*<sdr category id=35>Sensors:</sdr category> We have sensors to help you detect gasses, conduct surveillance, and measure performance. These sensors can help toward building an autonomous robot.<br />
*[[Autonomous Robots Hub|Build an Autonomous Robot]]: Bought one of our robots? Want to make it autonomous? Start here! We walk you through design decisions and the required components for you to develop your own autonomous robot.<br />
*[[Autonomous:Custom Autonomous Robots|Autonomous Robot Services]]: Autonomous robots are a challenge as they require a precise blend of mechanical, electrical, and software engineering. We have the capabilities to design and develop the autonomous solutions you require.<br />
*[[Autonomous Robots Hub|Autonomous WiFi Robot Arduino Robot Programming:]] The page describes the method and gives examples of how we programmed the Free Autonomous WiFi Robot Arduino Robot in our give away.<br />
*[[:Category:Sensors|Sensor Support:]] We carry a large array of sensors to enable you to develop a smart and autonomous robotic solution.<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Wi-Fi_Robots&diff=1912Wi-Fi Robots2021-04-22T13:13:12Z<p>Brent: </p>
<hr />
<div>This is a guide to working with our WiFi [[Control System|control]] packages. These packages come in variants with and without [[encoders]].<br />
<br />
*<sdr item id=1440>Programmable WiFi Custom Control Interface Package</sdr item><br />
*<sdr item id=3129>Programmable WiFi Custom Control Interface Package with Encoder Reading</sdr item><br />
<br />
The WiFi control package is implemented on our <sdr item id=1320>Programmable WiFi Mobile 4WD Robot Development Platform</sdr item> and can be selected as an option on most of our <sdr category id=195>Robot Kits</sdr category> and <sdr category id=194>Programmable Robots</sdr category>.<br />
<br />
===Setup===<br />
<br />
====Wireless Connectivity====<br />
<br />
=====Built-in Network=====<br />
The robot comes with its own wireless network. Just turn it on and wait for WiFiATR-Setup to appear on your device's network list. Next, open your browser and navigate to http://wifi-atr.local/ (if this doesn't work, try http://wifi-atr/ some devices work differently for this).<br />
<br />
Once you have the interface pulled up (image below), you can either start using the robot or connect it to an existing Wi-Fi network.<br />
[[File:WiFiATR GUI.png|center|thumb|500x500px]]<br />
<br />
=====Connect to Existing Network=====<br />
To connect to an existing network, click the gear icon on the GUI. This will being you to a configuration page(below). From here, click "Fetch Names" to load available networks. <br />
[[File:Configuration page for WiFiATR.png|center|thumb|500x500px]]<br />
Once the networks load, select one from the drop-down list and type in the password for the network. Once you are ready to connect, click the "Submit" button and the robot will reboot and connect to the new network. If you mistype the password or something goes wrong while connecting, don't worry, the setup network will remain available for reconfiguration.<br />
<br />
<br /><br />
<br />
===Camera===<br />
Digital camera with pan and tilt controls. You can control the pan and tilt with the left virtual joystick on the web interface. You are also able to center the camera with a button in the GUI.<br />
[[File:TP-600-165 Camera.jpg|center|thumb|500x500px]]<br />
<br />
===Add-Ons===<br />
The Programmable WiFi Mobile 4WD Robot Development Platform (TP-600-165) comes with 4 relays that can be turned on and off from the web GUI. This allows you to add a variety of devices to the robot and control them without even needing to modify the code running on the robot. <br />
<br />
The robot's hardware also supports multiple extra PWM deices, analog and digital inputs, digital outputs, UART serial devices, and more! <br />
<br /><br />
<br />
===Control Package===<br />
We also offer a WiFi control package that can be integrated into a large number of our robots. This essentially adds the ability to control a wide range of our robot platforms over WiFi from a smartphone/tablet/computer. You can easily plug in a USB webcam, add servos, connect to the relays, etc.<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=User:Skyben&diff=1911User:Skyben2021-04-21T20:39:36Z<p>Brent: </p>
<hr />
<div>Resident Webmaster, Graphic Designer, Social Media Manager, Videographer, Photographer, & Marketing Person.<br />
<br />
[[File:hollywood-kitten-camera.jpg|frameless|500x500px]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=File:hollywood-kitten-camera.jpg&diff=1910File:hollywood-kitten-camera.jpg2021-04-21T20:38:59Z<p>Brent: </p>
<hr />
<div>Cat director</div>Brenthttps://wiki.sdrobots.com/index.php?title=User:Brent&diff=1904User:Brent2021-04-21T13:30:30Z<p>Brent: </p>
<hr />
<div>[[File:cool_cat.png|frameless]]<br /></div>Brenthttps://wiki.sdrobots.com/index.php?title=User:Ben&diff=1903User:Ben2021-04-21T13:30:12Z<p>Brent: </p>
<hr />
<div>[[File:aristocat.jpg|frameless|349x349px]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=User:Ben&diff=1902User:Ben2021-04-21T13:29:43Z<p>Brent: Created page with "582x582px"</p>
<hr />
<div>[[File:aristocat.jpg|frameless|582x582px]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=File:aristocat.jpg&diff=1901File:aristocat.jpg2021-04-21T13:29:23Z<p>Brent: </p>
<hr />
<div>Aristocat</div>Brenthttps://wiki.sdrobots.com/index.php?title=Vectoring_Robot_Support&diff=1900Vectoring Robot Support2021-04-21T12:44:37Z<p>Brent: /* Motors and Motor Mounts */</p>
<hr />
<div>Vectoring robots are robots that are able to add left/right strafing to their motion. In other words, vectoring robots can move sideways. Conventional wheeled mobile robots can only move forward and backwards and turn left/right. By adding the left and right strafing components, vectoring robots are able to move in any direction along the ground and turn left/right. This is accomplished by equipping special wheels and using a [[Electronic Control Units|microcontroller]] to calculate the motor speeds required for a commanded motion.<br />
<br />
==How Vectoring Movement is Possible==<br />
Vectoring movement is achieved through a sum of forces generated by each wheel. In Figure 1 below, you will notice that for the robot to move to the right motor A will need to move in the negative direction and motors B and C would move in the positive direction.<br />
<br />
This diagram also shows why motors B and C must be reduced while moving sideways. Motors B and C must have the same power to negate the forward and back movement while motor A must generate the same amount of sideways force as the sum of B and C.<br />
[[File:vectorSupportPage1.jpg|center|thumb]]<br />
<br />
<br />
Figures 2 and 3 show the two distinct types of omni wheels. Both Omni wheels and Mecanum wheels provide traction in normal wheel movement as any other wheel would. however, what makes these wheels special are the small rollers along the wheel's edges. These wheels are designed to provide a minimum amount of friction sideways allowing the wheels to move in any direction.<br />
[[File:vectorSupportPage2.jpg|center|thumb]]<br />
<br />
<br />
Omni wheels have smaller rollers on the edges that move completely perpendicular to the wheel itself. With this type of wheel they must be mounted perpendicular to the center of the robot as seen in Figure 1.<br />
<br />
Mecanum wheels are unique in that the small rollers are at a 45 degree angle. This allows them to be mounted like normal wheels but provide the same style of movement as Omni wheels.<br />
<br />
==4WD Omni-directional Robots==<br />
We have several options for four wheel omni-directional robots. They use mecanum wheels or omni wheels mounted at a 45 degree angle. By changing the speeds and directions of the wheels you can achieve movement in any direction! Due to the style of the wheels it is possible to move the wheels in a standard "tank style" motion to drive normally when needed. These robots also work well for supporting high payloads since the wheels allow them to turn with very low friction. See the load ratings on the robot page for an idea of the payload.{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/Rt2Z3Sxtdn4<br />
|alignment=center<br />
|dimensions=600<br />
}}'''4WD Vectoring Robot Platforms'''<br />
<br />
*<sdr item id=1487> Programmable Mecanum Wheel Vectoring Robot - IG32 DM</sdr item><br />
*<sdr item id=1713> Programmable Mecanum Wheel Vectoring Robot - IG32 SB</sdr item><br />
*<sdr item id=2263> Programmable Mecanum Wheel Vectoring Robot - IG42 SB</sdr item><br />
*<sdr item id=1788> Programmable Mecanum Wheel Vectoring Robot - IG52 DB</sdr item><br />
*<sdr item id=2270> Programmable Quad-Wheel Omni-Directional Vectoring Robot Kit - IG32 SB</sdr item><br />
<br />
==3WD Omni-directional Robots==<br />
Our 3WD omni-directional robots use our double-row omni wheels, allowing them to vector in any direction.<br />
'''3WD Vectoring Robot Platform'''<br />
<br />
*<sdr item id=2229>Programmable Tri-Wheel Vectoring Robot Kit - IG32 Medium Duty SB</sdr item><br />
*<sdr item id=1486>Programmable Triangular Omni Wheel Vectoring Robot - IG32 DM</sdr item><br />
<br />
==Controls and Specifications==<br />
===Motors and Motor Mounts===<br />
We have mecanum wheel robot kits that use IG32, IG42, and IG52 [[motors]]. Below are the motors that we recommend using with these platforms, though you can use different motors if you need more speed or higher payloads. All motors are available in wide range of RPMs and some are available with a built in [[Encoder Support|encoder]] option. For a detailed list of our available motors please see the link below. The Omni wheel based chassis is available in both IG32 and IG42 variants.<br />
<br />
'''Suggested Motors'''<br />
<br />
*<sdr item id=374> 32mm 190 RPM 24V IG32 Gear Motor (TD-015-190)</sdr item><br />
*<sdr item id=374> 42mm 240 RPM 24V IG42 Gear Motor (TD-016-240)</sdr item><br />
*<sdr item id=872> 52mm 136 RPM 24V IG52 Gear Motor (TD-048-136)</sdr item><br />
*<sdr item id=2109> IG32 or IG42 Motor Mount Tube for Omni Wheel Chassis (TD-056-342)</sdr item><br />
<br />
'''Motor Hookups'''<br />
<br />
*<sdr item id=387> Electric Motor Hookup Kits (TE-024-000)</sdr item><br />
*[[Motor Wiring Support|Electric Motor Wiring Support]]<br />
<br />
Click here for a listing of our available motors.<br />
<br />
===Wheels and Drive Shafts===<br />
Our Mecanum wheels are available stand-alone or paired with compatible wheel hubs. All wheels listed below fit any of the nexus aluminum hubs. The 4" mecanum wheels also fit the SDR manufactured flush mounted hubs.<br />
<br />
*<sdr item id=1352> 4 inch nexus Robot Aluminum Mecanum Wheel - Ball Bearing(TD-090-100)</sdr item><br />
*<sdr item id=2062> 4 inch nexus Robot Aluminum Mecanum Wheel - Sleeve Bearing(TD-169-100)</sdr item><br />
*<sdr item id=2058> 6 inch nexus Robot Aluminum Mecanum Wheel (TD-090-152)</sdr item><br />
*<sdr item id=1351> 8 inch Nexus Robot Aluminum Mecanum Wheel (TD-090-203)</sdr item><br />
*<sdr item id=1488> SDR Flush Mounted Hub with 6mm Bore (TD-107-006)</sdr item><br />
*<sdr item id=1489> SDR Flush Mounted Hub with 8mm Bore (TD-107-008)</sdr item><br />
<br />
Nexus Aluminum Hubs<br />
<br />
*<sdr item id=1359> 6mm Bore - Nexus Aluminum Wheel Hub (TD-094-006)</sdr item><br />
*<sdr item id=1358> 8mm Bore - Nexus Aluminum Wheel Hub (TD-094-008)</sdr item><br />
*<sdr item id=1378> 12mm Bore - Nexus Aluminum Wheel Hub (TD-094-012)</sdr item><br />
*<sdr item id=1379> 0.5" Bore - Nexus Aluminum Wheel Hub (TD-094-050)</sdr item><br />
<br />
The Omni wheels are shafts are sold together as one unit. The shaft comes with a bearing and lock collar that fit into/onto the motors and motor mounts. The wheels are 4 inch in diameter. The traction wheels are made of durable urethane to help grip the floor. The wheels are available in two types; single row and double row. The double row wheels provide smoother operation but both work great.<br />
<br />
*<sdr item id=1734> Nexus Omni-Wheel and Shaft Assembly - 6mm Bore (TD-145-006)</sdr item><br />
*<sdr item id=2291> Nexus Omni-Wheel and Shaft Assembly - 8mm Bore (TD-145-008)</sdr item><br />
<br />
===Mecanum Wheels===<br />
Below is a diagram showing how the mecanum wheels should be mounted and which direction to turn the wheels for vectoring movements.<br />
[[File:mecanum drive wheels vectoring robot tn.jpg|center|thumb|400x400px]]<br />
<br /><br />
<br />
===Motor and Speed Controllers===<br />
[[File:Roboclaw 2x15 Motor Controller.jpg|thumb|250x250px|<sdr item id=2627>RoboClaw 2x15 Motor Controller</sdr item>]]<br />
We offer a variety of [[Motor Controller Support|motor controllers]] to allow for simple operation of the robot. The motor controllers are independent of the chassis type (Mecanum or Omni). To provide vectoring movement it is required to have one motor channel per motor. Higher amperage motor controllers will be needed as the motor size and payload of the robot increases.<br />
<br />
For the best vectoring performance, use motors with [[Encoder Support|encoders]] and a motor controller that has [[Speed Control#Closed Loop|closed loop speed control]], such as a Roboteq or Roboclaw. To vector cleanly in a desired direction, the robot's wheels must rotate at precise speed ratios relative to one another. If the ratios are off, then the movement will be sloppy -- e.g. instead of strafing purely to the right the robot might also drift slightly forward and turn slightly left during the movement. Closed loop speed control mitigates this effect so the robot moves as commanded.<br />
<br />
Dimension Engineering's motor controllers are versatile and reliable options when no closed loop speed control is needed.<br />
<br />
'''Recommended Motor Controllers'''<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1826>RoboteQ SDC2160 2x20A (TE-144-060)</sdr item><br />
*<sdr item id=847>SyRen 10 (TE-098-110)</sdr item><br />
*<sdr item id=822>Sabertooth Dual 25A (TE-091-225)</sdr item><br />
*<sdr item id=1822>Sabertooth Dual 32A (TE-091-232)</sdr item><br />
<br />
===Controller and Controller Interface===<br />
We offer three main [[Control System|control options]] for vectoring robots: Radio Controlled, WiFi, and wireless serial (xBee).<br />
<br />
'''R/C (Radio Control)'''<br />
<br />
For [[Control System#Analog|R/C control]] of the robot, although the motor controllers listed above support RC you will still need a [[Electronic Control Units|microcontroller]] on the robot in order to handle the motor mixing necessary to achieve vectoring motion.<br />
<br />
For accurate robot control, the remote will require at least a two axis joystick/control and a signal switch to change driving modes if desired. Below is a recommended listing of our R/C remotes.<br />
<br />
*<sdr item id=2617> FLYSKY FS-i6 2.4G 6CH Transmitter & Receiver (TE-328-000)</sdr item><br />
*<sdr item id=2672> Spektrum DSMX DX6e Transmitter with AR620 Receiver (TE-336-DX6)</sdr item><br />
*<sdr item id=1135> Spektrum DSMX DX8 8-Channel Transmitter Gen 2 with AR8010T Receiver (TE-113-008)</sdr item><br />
<br />
'''WiFi Control'''<br />
<br />
We offer an Arduino-based <sdr item id=1440>Wifi control interface package (TE-900-003)</sdr item> that includes an <sdr item id=1292>Arduino Mega</sdr item>, <sdr item id=1419>SDR Breakout shield</sdr item>, Raspberry Pi, voltage regulators, and a <sdr item id=1913>4 channel TTL Relay Board (TE-010-405)</sdr item>. The control package also comes with the source code for the control software and the Arduino firmware needed for operation of the robot.<br />
<br />
Please see our [[Wi-Fi Robots|WiFi Control Interface Support Page]] for more information.<br />
<br />
'''Wireless Serial Control'''<br />
<br />
Wireless serial control is achieved through an xBee radio. Wireless serial is currently only available if you choose an Arduino-based control system. The xBee radio connects to the Arduino through the Arduino Wireless SD Shield (MCU-064-000). A Wireless Serial Control system is available by request. Please contact us for more information.<br />
<br />
Please see our [[XBee Wireless Serial Module|Wireless Serial Support Page]] for more information.<br />
<br />
===Hardware===<br />
The final item you need to make your kit complete is a hardware package. It includes nuts, bolts, washers, cable ties, and cable hold downs.<br />
<br />
*<sdr item id=401> Hardware Package (mounts most components to the base robot) (TD-021-000)</sdr item><br />
*<sdr item id=399> Servo Standoff Mounting Hardware (TD-024-000)</sdr item><br />
<br />
===Sensors===<br />
In order to make your robot [[:Category:Autonomous|autonomous]], you will need to add [[:Category:Sensors|sensors]]. Sensors can always be added or removed at a later date but always be mindful of how the sensors interact with your microcontroller. Some sensors operate under I2C, some SPI and some analog. See our [[:Category:Sensors|Sensor Support Page]] for more information.<br />
<br />
*Accelerometers, Gyros, GPS, and Compasses<br />
*Contact Sensors<br />
*Current Sensors<br />
*Force Sensors<br />
*Gas Sensors<br />
*Optical Sensors<br />
*Sonar Range Finders<br />
*Temperature and Humidity Sensors<br />
<br />
[[Category:Vectoring Robots]]<br />
[[Category:Mechanical Engineering]]<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Vectoring_Robot_Support&diff=1899Vectoring Robot Support2021-04-21T12:43:30Z<p>Brent: </p>
<hr />
<div>Vectoring robots are robots that are able to add left/right strafing to their motion. In other words, vectoring robots can move sideways. Conventional wheeled mobile robots can only move forward and backwards and turn left/right. By adding the left and right strafing components, vectoring robots are able to move in any direction along the ground and turn left/right. This is accomplished by equipping special wheels and using a [[Electronic Control Units|microcontroller]] to calculate the motor speeds required for a commanded motion.<br />
<br />
==How Vectoring Movement is Possible==<br />
Vectoring movement is achieved through a sum of forces generated by each wheel. In Figure 1 below, you will notice that for the robot to move to the right motor A will need to move in the negative direction and motors B and C would move in the positive direction.<br />
<br />
This diagram also shows why motors B and C must be reduced while moving sideways. Motors B and C must have the same power to negate the forward and back movement while motor A must generate the same amount of sideways force as the sum of B and C.<br />
[[File:vectorSupportPage1.jpg|center|thumb]]<br />
<br />
<br />
Figures 2 and 3 show the two distinct types of omni wheels. Both Omni wheels and Mecanum wheels provide traction in normal wheel movement as any other wheel would. however, what makes these wheels special are the small rollers along the wheel's edges. These wheels are designed to provide a minimum amount of friction sideways allowing the wheels to move in any direction.<br />
[[File:vectorSupportPage2.jpg|center|thumb]]<br />
<br />
<br />
Omni wheels have smaller rollers on the edges that move completely perpendicular to the wheel itself. With this type of wheel they must be mounted perpendicular to the center of the robot as seen in Figure 1.<br />
<br />
Mecanum wheels are unique in that the small rollers are at a 45 degree angle. This allows them to be mounted like normal wheels but provide the same style of movement as Omni wheels.<br />
<br />
==4WD Omni-directional Robots==<br />
We have several options for four wheel omni-directional robots. They use mecanum wheels or omni wheels mounted at a 45 degree angle. By changing the speeds and directions of the wheels you can achieve movement in any direction! Due to the style of the wheels it is possible to move the wheels in a standard "tank style" motion to drive normally when needed. These robots also work well for supporting high payloads since the wheels allow them to turn with very low friction. See the load ratings on the robot page for an idea of the payload.{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/Rt2Z3Sxtdn4<br />
|alignment=center<br />
|dimensions=600<br />
}}'''4WD Vectoring Robot Platforms'''<br />
<br />
*<sdr item id=1487> Programmable Mecanum Wheel Vectoring Robot - IG32 DM</sdr item><br />
*<sdr item id=1713> Programmable Mecanum Wheel Vectoring Robot - IG32 SB</sdr item><br />
*<sdr item id=2263> Programmable Mecanum Wheel Vectoring Robot - IG42 SB</sdr item><br />
*<sdr item id=1788> Programmable Mecanum Wheel Vectoring Robot - IG52 DB</sdr item><br />
*<sdr item id=2270> Programmable Quad-Wheel Omni-Directional Vectoring Robot Kit - IG32 SB</sdr item><br />
<br />
==3WD Omni-directional Robots==<br />
Our 3WD omni-directional robots use our double-row omni wheels, allowing them to vector in any direction.<br />
'''3WD Vectoring Robot Platform'''<br />
<br />
*<sdr item id=2229>Programmable Tri-Wheel Vectoring Robot Kit - IG32 Medium Duty SB</sdr item><br />
*<sdr item id=1486>Programmable Triangular Omni Wheel Vectoring Robot - IG32 DM</sdr item><br />
<br />
==Controls and Specifications==<br />
===Motors and Motor Mounts===<br />
We have mecanum wheel robot kits that use IG32, IG42, and IG52 [[motors]]. Below are the motors that we recommend using with these platforms, though you can use different motors if you need more speed or higher payloads. All motors are available in wide range of RPMs and some are available with a built in encoder option. For a detailed list of our available motors please see the link below. The Omni wheel based chassis is available in both IG32 and IG42 variants.<br />
<br />
'''Suggested Motors'''<br />
<br />
*<sdr item id=374> 32mm 190 RPM 24V IG32 Gear Motor (TD-015-190)</sdr item><br />
*<sdr item id=374> 42mm 240 RPM 24V IG42 Gear Motor (TD-016-240)</sdr item><br />
*<sdr item id=872> 52mm 136 RPM 24V IG52 Gear Motor (TD-048-136)</sdr item><br />
*<sdr item id=2109> IG32 or IG42 Motor Mount Tube for Omni Wheel Chassis (TD-056-342)</sdr item><br />
<br />
'''Motor Hookups'''<br />
<br />
*<sdr item id=387> Electric Motor Hookup Kits (TE-024-000)</sdr item><br />
*[[Motor Wiring Support|Electric Motor Wiring Support]]<br />
<br />
Click here for a listing of our available motors.<br />
<br />
===Wheels and Drive Shafts===<br />
Our Mecanum wheels are available stand-alone or paired with compatible wheel hubs. All wheels listed below fit any of the nexus aluminum hubs. The 4" mecanum wheels also fit the SDR manufactured flush mounted hubs.<br />
<br />
*<sdr item id=1352> 4 inch nexus Robot Aluminum Mecanum Wheel - Ball Bearing(TD-090-100)</sdr item><br />
*<sdr item id=2062> 4 inch nexus Robot Aluminum Mecanum Wheel - Sleeve Bearing(TD-169-100)</sdr item><br />
*<sdr item id=2058> 6 inch nexus Robot Aluminum Mecanum Wheel (TD-090-152)</sdr item><br />
*<sdr item id=1351> 8 inch Nexus Robot Aluminum Mecanum Wheel (TD-090-203)</sdr item><br />
*<sdr item id=1488> SDR Flush Mounted Hub with 6mm Bore (TD-107-006)</sdr item><br />
*<sdr item id=1489> SDR Flush Mounted Hub with 8mm Bore (TD-107-008)</sdr item><br />
<br />
Nexus Aluminum Hubs<br />
<br />
*<sdr item id=1359> 6mm Bore - Nexus Aluminum Wheel Hub (TD-094-006)</sdr item><br />
*<sdr item id=1358> 8mm Bore - Nexus Aluminum Wheel Hub (TD-094-008)</sdr item><br />
*<sdr item id=1378> 12mm Bore - Nexus Aluminum Wheel Hub (TD-094-012)</sdr item><br />
*<sdr item id=1379> 0.5" Bore - Nexus Aluminum Wheel Hub (TD-094-050)</sdr item><br />
<br />
The Omni wheels are shafts are sold together as one unit. The shaft comes with a bearing and lock collar that fit into/onto the motors and motor mounts. The wheels are 4 inch in diameter. The traction wheels are made of durable urethane to help grip the floor. The wheels are available in two types; single row and double row. The double row wheels provide smoother operation but both work great.<br />
<br />
*<sdr item id=1734> Nexus Omni-Wheel and Shaft Assembly - 6mm Bore (TD-145-006)</sdr item><br />
*<sdr item id=2291> Nexus Omni-Wheel and Shaft Assembly - 8mm Bore (TD-145-008)</sdr item><br />
<br />
===Mecanum Wheels===<br />
Below is a diagram showing how the mecanum wheels should be mounted and which direction to turn the wheels for vectoring movements.<br />
[[File:mecanum drive wheels vectoring robot tn.jpg|center|thumb|400x400px]]<br />
<br /><br />
<br />
===Motor and Speed Controllers===<br />
[[File:Roboclaw 2x15 Motor Controller.jpg|thumb|250x250px|<sdr item id=2627>RoboClaw 2x15 Motor Controller</sdr item>]]<br />
We offer a variety of [[Motor Controller Support|motor controllers]] to allow for simple operation of the robot. The motor controllers are independent of the chassis type (Mecanum or Omni). To provide vectoring movement it is required to have one motor channel per motor. Higher amperage motor controllers will be needed as the motor size and payload of the robot increases.<br />
<br />
For the best vectoring performance, use motors with [[Encoder Support|encoders]] and a motor controller that has [[Speed Control#Closed Loop|closed loop speed control]], such as a Roboteq or Roboclaw. To vector cleanly in a desired direction, the robot's wheels must rotate at precise speed ratios relative to one another. If the ratios are off, then the movement will be sloppy -- e.g. instead of strafing purely to the right the robot might also drift slightly forward and turn slightly left during the movement. Closed loop speed control mitigates this effect so the robot moves as commanded.<br />
<br />
Dimension Engineering's motor controllers are versatile and reliable options when no closed loop speed control is needed.<br />
<br />
'''Recommended Motor Controllers'''<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1826>RoboteQ SDC2160 2x20A (TE-144-060)</sdr item><br />
*<sdr item id=847>SyRen 10 (TE-098-110)</sdr item><br />
*<sdr item id=822>Sabertooth Dual 25A (TE-091-225)</sdr item><br />
*<sdr item id=1822>Sabertooth Dual 32A (TE-091-232)</sdr item><br />
<br />
===Controller and Controller Interface===<br />
We offer three main [[Control System|control options]] for vectoring robots: Radio Controlled, WiFi, and wireless serial (xBee).<br />
<br />
'''R/C (Radio Control)'''<br />
<br />
For [[Control System#Analog|R/C control]] of the robot, although the motor controllers listed above support RC you will still need a [[Electronic Control Units|microcontroller]] on the robot in order to handle the motor mixing necessary to achieve vectoring motion.<br />
<br />
For accurate robot control, the remote will require at least a two axis joystick/control and a signal switch to change driving modes if desired. Below is a recommended listing of our R/C remotes.<br />
<br />
*<sdr item id=2617> FLYSKY FS-i6 2.4G 6CH Transmitter & Receiver (TE-328-000)</sdr item><br />
*<sdr item id=2672> Spektrum DSMX DX6e Transmitter with AR620 Receiver (TE-336-DX6)</sdr item><br />
*<sdr item id=1135> Spektrum DSMX DX8 8-Channel Transmitter Gen 2 with AR8010T Receiver (TE-113-008)</sdr item><br />
<br />
'''WiFi Control'''<br />
<br />
We offer an Arduino-based <sdr item id=1440>Wifi control interface package (TE-900-003)</sdr item> that includes an <sdr item id=1292>Arduino Mega</sdr item>, <sdr item id=1419>SDR Breakout shield</sdr item>, Raspberry Pi, voltage regulators, and a <sdr item id=1913>4 channel TTL Relay Board (TE-010-405)</sdr item>. The control package also comes with the source code for the control software and the Arduino firmware needed for operation of the robot.<br />
<br />
Please see our [[Wi-Fi Robots|WiFi Control Interface Support Page]] for more information.<br />
<br />
'''Wireless Serial Control'''<br />
<br />
Wireless serial control is achieved through an xBee radio. Wireless serial is currently only available if you choose an Arduino-based control system. The xBee radio connects to the Arduino through the Arduino Wireless SD Shield (MCU-064-000). A Wireless Serial Control system is available by request. Please contact us for more information.<br />
<br />
Please see our [[XBee Wireless Serial Module|Wireless Serial Support Page]] for more information.<br />
<br />
===Hardware===<br />
The final item you need to make your kit complete is a hardware package. It includes nuts, bolts, washers, cable ties, and cable hold downs.<br />
<br />
*<sdr item id=401> Hardware Package (mounts most components to the base robot) (TD-021-000)</sdr item><br />
*<sdr item id=399> Servo Standoff Mounting Hardware (TD-024-000)</sdr item><br />
<br />
===Sensors===<br />
In order to make your robot [[:Category:Autonomous|autonomous]], you will need to add [[:Category:Sensors|sensors]]. Sensors can always be added or removed at a later date but always be mindful of how the sensors interact with your microcontroller. Some sensors operate under I2C, some SPI and some analog. See our [[:Category:Sensors|Sensor Support Page]] for more information.<br />
<br />
*Accelerometers, Gyros, GPS, and Compasses<br />
*Contact Sensors<br />
*Current Sensors<br />
*Force Sensors<br />
*Gas Sensors<br />
*Optical Sensors<br />
*Sonar Range Finders<br />
*Temperature and Humidity Sensors<br />
<br />
[[Category:Vectoring Robots]]<br />
[[Category:Mechanical Engineering]]<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Motors&diff=1874Motors2021-04-16T20:23:53Z<p>Brent: </p>
<hr />
<div>A motor is an electromechanical device that converts electrical energy to mechanical energy.<br />
<br />
==Motor Gearing==<br />
[[File:TD-044-078 ig42 motor encoders.jpg|thumb|250x250px|<sdr item id=1036>IG42 Gear Motor with Encoders</sdr item>]]<br />
An electric DC motor spins very fast, often in the range of 4000-6000 RPM and has very little torque. This isn't very useful for a robot. Most robots move at relatively slow speeds and need high torque. Luckily, we can use a gearbox to slow the motor down and generate more torque. The more the motor is geared down, the more torque it will have. We use brushed DC <sdr category id=7>gear motors</sdr category> meaning that they come with a gearbox already attached. We categorize the motors first by their size and then we specify the further by their speed.<br />
<br />
Your car uses a transmission and starts in 1st gear (most reduced) so you have the low-end torque to start moving. Then, as you speed up, you change gears to get more speed. Most robots, however, cannot change gears. The maximum speed and torque are fixed. You have to find the right balance so you have enough torque to get started from zero speed, but then enough top-end speed. If you gear it down too much you will have plenty of power, but never get any speed. If it's not geared enough it will probably be plenty fast but it will have trouble accelerating, driving up hills, and turning. You need to find a balance where it works well for both. The big electric motors will help because they will muscle through it if you don't have it geared just right, but if it works too hard you will be drawing a ton of current and burning up your batteries!<br />
==Available Motors==<br />
<br />
*<sdr category id=60> Servos</sdr category> - Very small robots < 5 lbs<br />
*<sdr category id=76> 32mm Gear Motors</sdr category> - Small to medium robots 5-35 lbs<br />
*<sdr category id=77> 42mm Gear Motors</sdr category> - Small to medium-large robots 5-50 lbs<br />
*<sdr category id=78> 52mm Gear Motors</sdr category> - Medium to large robots 25-150 lbs<br />
*<sdr category id=84> 90mm Gear Motors</sdr category> - Large robots up to 250 lbs<br />
*<sdr category id=123> Micro Metal Gear Motors</sdr category> - Very small robots < 5 lbs<br />
*<sdr category id=131> Wheelchair Motors</sdr category> - Large robots up to 250 lbs<br />
<br />
<br /><br />
<br />
[[Category:Mechanical Components]]<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Sensor_Selection&diff=1873Sensor Selection2021-04-16T20:18:23Z<p>Brent: </p>
<hr />
<div>This is a practical guide to selecting [[:Category:Sensors|sensors]] for your project. For each sensor there is a breakdown of what physical parameters the sensor is measuring, the conditions the sensor works best in, and some things the sensor does well and poorly.<br />
<br />
==[[Positioning System]] Sensors==<br />
<br />
These sensors are used as part of a [[Positioning_System|positioning system]] to generate estimates of the robot’s position state (position, orientation/heading, speed, and/or acceleration).<br />
<br />
===[[Encoders|Wheel Encoders]]===<br />
[[File:us digital h1 encoder.jpg|thumb|250x250px|US Digital H1 Encoder]]<br />
Rotary [[Wheel_Encoders|encoders]] are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing can be measured by monitoring the number or frequency of the pulses. In robotics, encoders are commonly attached to the robot's drive [[motors]] and used to measure the robot's linear speed, angular speed, and distance traveled.<br />
<br />
'''Measurement:''' When attached to the drive motors, measures wheel speed. This information can then be used to track the robot’s linear and angular/rotational speed and subsequently the robot’s position and heading by integrating the data over time<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in position and orientation when fused with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for closed loop speed control of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot position because the wheel moves but the robot doesn’t.<br />
*Position errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional electronics are often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
===[[Inertial_Measurement_Unit|Inertial Measurement Unit (IMU)]]===<br />
[[File:minimu-9 imu.jpg|alt=|thumb|250x250px|<sdr item id=2274>Pololu MinIMU-9 v5 IMU</sdr item>]]<br />
The [[Inertial_Measurement_Unit|IMU]] is typically a combination of three sensors: accelerometer, gyroscope, and magnetometer.<br />
<br />
'''Measurement:''' Linear acceleration (accelerometer), angular velocity (gyroscope), heading (magnetometer/compass). 3D orientation (roll/pitch/yaw) when values are combined using sensor fusion techniques.<br />
<br />
'''Ideal operating conditions:''' Can be used in nearly any conditions. Magnetometer needs to avoid EM noise and ferrous materials.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Can be used in nearly any conditions – indoor/outdoor, day/night, uneven surfaces. Requires few assumptions to use. This versatility makes the IMU a useful addition to any sensor setup.<br />
*Good for mitigating discrete jumps in position and orientation measurement when fused with other sensors.<br />
*Useful in both 2D and 3D applications.<br />
*Produces a reasonable 3D orientation estimate.<br />
*Acceleration measurements can be integrated to estimate velocity and position. However, these estimates are noisy and will accumulate error over time. Fusing the acceleration data with other sensors is a better approach.<br />
*Very inexpensive. Decent IMUs are available for less than $20.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration<br />
*It is difficult to work directly with raw IMU data due mainly to noise. Filtering algorithms are needed to extract useful information. Higher end IMUs can filter the data before outputting it.<br />
*Gyroscopes are susceptible to drift.<br />
*Magnetometer/compass output is unreliable. Must be corrected based on where it is being used in the world. Even then the compass heading is inaccurate (+-20 degrees or worse). Also vulnerable to external magnetic sources.<br />
<br />
===[[GPS]]===<br />
[[File:here gps.jpg|thumb|Here GPS Receiver]]<br />
'''Measurement:''' GPS receiver exchanges data with GPS satellite system to obtain time and location information anywhere on the planet. For basic GPS the position accuracy is about 10-20 meters. WAAS can reach an accuracy of under 3 meters and RTK can reach 1 cm.<br />
<br />
'''Ideal operating conditions:''' Outdoors with an unobstructed view of the sky. Does not work indoors! WAAS only works in the US and requires a nearby public reference station to feed it correctional data. RTK requires sky visibility in a cone at an elevation of ~30 degrees to the horizon and a base station setup very close by for corrections.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Data is easily processed, allowing the use of cheaper [[Electronic_Control_Units|microcontrollers]]<br />
*Can receive positioning data anywhere in the world (while outside) with no setup. This is a huge positive.<br />
*WAAS and RTK can have decent accuracy with some extra setup<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Slow update rate<br />
*Only works outside<br />
*Generally not accurate enough by itself to be used for robot navigation<br />
*WAAS has reasonable accuracy but only works in the US<br />
*While RTK has impressive accuracy, it is difficult to setup and get working reliably in real-time<br />
*Difficult to align with map data<br />
<br />
===<sdr item id=2562>Marvelmind Indoor Positioning System (IPS)</sdr item>===<br />
[[File:Marvelmind IPS.jpg|thumb|250x250px|<sdr item id=2562>Marvelmind IPS Starter Kit</sdr item>]]<br />
This is a positioning system that uses a set of stationary ultrasonic beacons to track the position of a mobile beacon attached to the robot.<br />
<br />
'''Measurement:''' Position in 3D space.<br />
<br />
'''Ideal operating conditions:''' Can be used in nearly any conditions.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Directly provides accurate 3D position data (about 1-2” error) with no additional data processing required. This is a big deal since generating reliable position data is one of the main goals of the robot’s positioning system (you still need orientation though).<br />
*No computational load is required from the robot which allows the use of a less powerful [[Electronic Control Units|microcontroller]].<br />
*Despite the name, can be used outdoors.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Setup required. Must place stationary beacons beforehand which limits portability of the robot. Marvelmind PC software and stationary beacon self-arrangement algorithm make it so setup isn’t too much of a hassle though.<br />
*Beacons have batteries that must be recharged from time to time.<br />
*Position is subject to discrete jumps. Fusion with encoder or imu measurements helps with this.<br />
*Line of sight requirements are hard to meet in a cluttered environment.<br />
*Susceptible to interference from other sources of ultrasonic noise.<br />
<br />
==Simple [[Obstacle Detection]] Sensors==<br />
<br />
These sensors are able to [[Obstacle Detection|detect obstacles]] at a point, in a line, or in a small cone. Some may also be used as one-dimensional positioning sensors, e.g. to track the distance between the robot and a wall.<br />
<br />
===Contact/Bumper/Limit Switches===<br />
[[File:limit switch.jpg|thumb|250x250px|Contact Switch]]<br />
'''Obstacle Detection:''' This is a simple switch that is positioned on the robot such that it is tripped when the robot hits an obstacle. Output is usually a simple high/low digital signal.<br />
<br />
'''Ideal operating conditions:''' Can be used in any conditions. The only consideration is where to place it on the robot.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Can be used in any conditions<br />
*Simple to interface with code. Just read a digital signal!<br />
*Reliable due to simplicity. There’s not much that can go wrong.<br />
*The above points make the contact switch a great failsafe option.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Doesn’t detect an obstacle until the robot has already hit it.<br />
*May require some mechanical adjustment to make sure it trips correctly without giving false positives.<br />
<br />
===[[Infrared Distance Sensor|IR Distance Sensors]] and [[Lidar#1D Lidar|1D Lidars]]===<br />
[[File:Infrared IR Sensor.jpg|thumb|250x250px|<sdr item id=1558>Sharp 150cm IR Distance Sensor</sdr item>]]<br />
'''Obstacle Detection:''' Detects obstacles in a straight, narrow beam of light. Lidar will be more accurate (and expensive) than simple IR sensors. IR sensors have a decent detection range (maybe 10-15 ft max) while Lidars that detect out to 60+ feet are common.<br />
<br />
'''Ideal operating conditions:''' IR sensors and Lidars can both become erratic when exposed to sunlight interference. Some sensors will work perfectly outside while others may be fine with ambient sunlight and have problems only when pointed towards the sun. The rest range from slightly noisy to completely unusable outside.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Data is easily processed, allowing the use of cheaper [[Electronic Control Units|microcontrollers]]<br />
*Less expensive than 2D Lidar<br />
*Good detection range and update rate<br />
*1D Lidar has good accuracy<br />
*Can be used for 1D positioning or following applications<br />
<br />
'''Sensor Cons:'''<br />
<br />
*IR sensors often have discontinuous, nonlinear, and/or noisy output.<br />
*Only detects obstacles in a narrow beam. If these are the primary obstacle detection sensors on a robot then several of them are required and there will still be big gaps in the detection zone – between the beams and above/below them.<br />
*You may be tempted to sweep the sensor using an [[RC and Servo Support|RC servo]] or something, but this generally doesn’t work very well. You’re better off buying a cheap 2D lidar at that point.<br />
*These sensors can be vulnerable to dirt/dust and scratches.<br />
<br />
===[[Ultrasonic_Distance_Sensor|Ultrasonic Distance Sensors]]===<br />
[[File:maxsonar ez1 ultrasonic sensor.jpg|thumb|250x250px|<sdr item id=1347>Maxsonar EZ1 Ultrasonic Distance Sensor</sdr item>]]<br />
'''Obstacle Detection:''' [[Ultrasonic_Distance_Sensor|Ultrasonic Distance Sensors]] detect obstacles in a cone. Although the detection area is significantly larger than IR and 1D lidar, the ultrasonic sensor still only measures the distance to the closest object. Maximum detection range is about 15 feet.<br />
<br />
'''Ideal operating conditions:''' No sources of external ultrasonic noise present.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Data is easily processed, allowing the use of cheaper [[Electronic Control Units|microcontrollers]]<br />
*Inexpensive<br />
*Good detection range and update rate<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Ultrasonic emissions can echo, causing the receiver to pick up “ghost” data<br />
*Similarly, complications can arise if multiple ultrasonic sensors are used since receivers can pick up emissions from other sensors. Some effort may be required to coordinate the emit/receive measurement times for each sensor.<br />
<br />
==Advanced [[Obstacle Detection]] Sensors==<br />
<br />
The sensors in this section can detect obstacles in 2 or 3 dimensions and are capable of generating maps of the environment.<br />
<br />
===[[Lidar#2D_Lidar|2D Lidar]]===<br />
[[File:Hokuyo UST10LX 2D Lidar.jpg|thumb|250x250px|<sdr item id=2253>Hokuyo UST-10LX 2D Lidar</sdr item>]]<br />
'''Obstacle Detection:''' Detects obstacles surrounding the robot. The [[Lidar#2D_Lidar|2D lidar]] generates a ring of points that extend to the closest obstacle in all directions. Able to create a rough map of the robot’s immediate surroundings.<br />
<br />
'''Ideal operating conditions:''' Installed at a height where obstacles are expected to be encountered. Some Lidars are sensitive to sunlight, depending on the specific model and design.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Less data to process than a 3D Lidar<br />
*Much more coverage than 1D sensors like IR and 1D Lidar<br />
*Can be used to generate a 2D map and utilize 2D SLAM<br />
*Good detection range and update rate<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Can only see obstacles on a single horizontal plane, unable to see above and below the sensor<br />
*More data than 1D sensors, usually requiring a small computer to use<br />
*Unreliable when the robot pitches and rolls, due to the detection plane intersecting the ground<br />
<br />
===[[Lidar#3D Lidar|3D Lidar]]===<br />
[[File:Ouster 3D Lidar.png|thumb|250x250px|Ouster 3D Lidar]]<br />
'''Obstacle Detection:''' Detects obstacles surrounding the robot in 3D space. The 3D lidar generates a cloud of points that extend out from the sensor in all directions horizontally and 30 degrees above and below the sensor vertically. Able to create a detailed map of the robot’s surroundings, including obstacles above the robot and below the lidar.<br />
<br />
'''Ideal operating conditions:''' Installed on the top of the robot, low enough to the ground where the 30 degree window is able to see the area directly in front of the robot. Some Lidars are sensitive to sunlight, depending on the specific model and design.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Full coverage of the robot’s environment<br />
*Can be used to generate a 3D map and utilize 3D SLAM<br />
*Reliable due to the large number of data points to base position off of<br />
*Works in 3D environments where the robot is pitching, rolling, and changing in elevation. Can generate 3D position and orientation estimates.<br />
*Can detect obstacles above and below itself, which a 2D lidar would miss.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Expensive<br />
*Generates a large amount of data, which requires a more powerful computer to process and make use of<br />
*Limited viewing angle, restricts where the sensor can be placed effectively<br />
<br />
===Computer Vision===<br />
[[Category:Controls]]<br />
[[Category:Autonomous]]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Software Engineering]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Sensor_Selection&diff=1872Sensor Selection2021-04-16T20:17:49Z<p>Brent: /* Wheel Encoders */</p>
<hr />
<div>This is a practical guide to selecting sensors for your project. For each sensor there is a breakdown of what physical parameters the sensor is measuring, the conditions the sensor works best in, and some things the sensor does well and poorly.<br />
<br />
==[[Positioning System]] Sensors==<br />
<br />
These sensors are used as part of a [[Positioning_System|positioning system]] to generate estimates of the robot’s position state (position, orientation/heading, speed, and/or acceleration).<br />
<br />
===[[Encoders|Wheel Encoders]]===<br />
[[File:us digital h1 encoder.jpg|thumb|250x250px|US Digital H1 Encoder]]<br />
Rotary [[Wheel_Encoders|encoders]] are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing can be measured by monitoring the number or frequency of the pulses. In robotics, encoders are commonly attached to the robot's drive [[motors]] and used to measure the robot's linear speed, angular speed, and distance traveled.<br />
<br />
'''Measurement:''' When attached to the drive motors, measures wheel speed. This information can then be used to track the robot’s linear and angular/rotational speed and subsequently the robot’s position and heading by integrating the data over time<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in position and orientation when fused with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for closed loop speed control of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot position because the wheel moves but the robot doesn’t.<br />
*Position errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional electronics are often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
===[[Inertial_Measurement_Unit|Inertial Measurement Unit (IMU)]]===<br />
[[File:minimu-9 imu.jpg|alt=|thumb|250x250px|<sdr item id=2274>Pololu MinIMU-9 v5 IMU</sdr item>]]<br />
The [[Inertial_Measurement_Unit|IMU]] is typically a combination of three sensors: accelerometer, gyroscope, and magnetometer.<br />
<br />
'''Measurement:''' Linear acceleration (accelerometer), angular velocity (gyroscope), heading (magnetometer/compass). 3D orientation (roll/pitch/yaw) when values are combined using sensor fusion techniques.<br />
<br />
'''Ideal operating conditions:''' Can be used in nearly any conditions. Magnetometer needs to avoid EM noise and ferrous materials.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Can be used in nearly any conditions – indoor/outdoor, day/night, uneven surfaces. Requires few assumptions to use. This versatility makes the IMU a useful addition to any sensor setup.<br />
*Good for mitigating discrete jumps in position and orientation measurement when fused with other sensors.<br />
*Useful in both 2D and 3D applications.<br />
*Produces a reasonable 3D orientation estimate.<br />
*Acceleration measurements can be integrated to estimate velocity and position. However, these estimates are noisy and will accumulate error over time. Fusing the acceleration data with other sensors is a better approach.<br />
*Very inexpensive. Decent IMUs are available for less than $20.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration<br />
*It is difficult to work directly with raw IMU data due mainly to noise. Filtering algorithms are needed to extract useful information. Higher end IMUs can filter the data before outputting it.<br />
*Gyroscopes are susceptible to drift.<br />
*Magnetometer/compass output is unreliable. Must be corrected based on where it is being used in the world. Even then the compass heading is inaccurate (+-20 degrees or worse). Also vulnerable to external magnetic sources.<br />
<br />
===[[GPS]]===<br />
[[File:here gps.jpg|thumb|Here GPS Receiver]]<br />
'''Measurement:''' GPS receiver exchanges data with GPS satellite system to obtain time and location information anywhere on the planet. For basic GPS the position accuracy is about 10-20 meters. WAAS can reach an accuracy of under 3 meters and RTK can reach 1 cm.<br />
<br />
'''Ideal operating conditions:''' Outdoors with an unobstructed view of the sky. Does not work indoors! WAAS only works in the US and requires a nearby public reference station to feed it correctional data. RTK requires sky visibility in a cone at an elevation of ~30 degrees to the horizon and a base station setup very close by for corrections.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Data is easily processed, allowing the use of cheaper [[Electronic_Control_Units|microcontrollers]]<br />
*Can receive positioning data anywhere in the world (while outside) with no setup. This is a huge positive.<br />
*WAAS and RTK can have decent accuracy with some extra setup<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Slow update rate<br />
*Only works outside<br />
*Generally not accurate enough by itself to be used for robot navigation<br />
*WAAS has reasonable accuracy but only works in the US<br />
*While RTK has impressive accuracy, it is difficult to setup and get working reliably in real-time<br />
*Difficult to align with map data<br />
<br />
===<sdr item id=2562>Marvelmind Indoor Positioning System (IPS)</sdr item>===<br />
[[File:Marvelmind IPS.jpg|thumb|250x250px|<sdr item id=2562>Marvelmind IPS Starter Kit</sdr item>]]<br />
This is a positioning system that uses a set of stationary ultrasonic beacons to track the position of a mobile beacon attached to the robot.<br />
<br />
'''Measurement:''' Position in 3D space.<br />
<br />
'''Ideal operating conditions:''' Can be used in nearly any conditions.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Directly provides accurate 3D position data (about 1-2” error) with no additional data processing required. This is a big deal since generating reliable position data is one of the main goals of the robot’s positioning system (you still need orientation though).<br />
*No computational load is required from the robot which allows the use of a less powerful [[Electronic Control Units|microcontroller]].<br />
*Despite the name, can be used outdoors.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Setup required. Must place stationary beacons beforehand which limits portability of the robot. Marvelmind PC software and stationary beacon self-arrangement algorithm make it so setup isn’t too much of a hassle though.<br />
*Beacons have batteries that must be recharged from time to time.<br />
*Position is subject to discrete jumps. Fusion with encoder or imu measurements helps with this.<br />
*Line of sight requirements are hard to meet in a cluttered environment.<br />
*Susceptible to interference from other sources of ultrasonic noise.<br />
<br />
==Simple [[Obstacle Detection]] Sensors==<br />
<br />
These sensors are able to [[Obstacle Detection|detect obstacles]] at a point, in a line, or in a small cone. Some may also be used as one-dimensional positioning sensors, e.g. to track the distance between the robot and a wall.<br />
<br />
===Contact/Bumper/Limit Switches===<br />
[[File:limit switch.jpg|thumb|250x250px|Contact Switch]]<br />
'''Obstacle Detection:''' This is a simple switch that is positioned on the robot such that it is tripped when the robot hits an obstacle. Output is usually a simple high/low digital signal.<br />
<br />
'''Ideal operating conditions:''' Can be used in any conditions. The only consideration is where to place it on the robot.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Can be used in any conditions<br />
*Simple to interface with code. Just read a digital signal!<br />
*Reliable due to simplicity. There’s not much that can go wrong.<br />
*The above points make the contact switch a great failsafe option.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Doesn’t detect an obstacle until the robot has already hit it.<br />
*May require some mechanical adjustment to make sure it trips correctly without giving false positives.<br />
<br />
===[[Infrared Distance Sensor|IR Distance Sensors]] and [[Lidar#1D Lidar|1D Lidars]]===<br />
[[File:Infrared IR Sensor.jpg|thumb|250x250px|<sdr item id=1558>Sharp 150cm IR Distance Sensor</sdr item>]]<br />
'''Obstacle Detection:''' Detects obstacles in a straight, narrow beam of light. Lidar will be more accurate (and expensive) than simple IR sensors. IR sensors have a decent detection range (maybe 10-15 ft max) while Lidars that detect out to 60+ feet are common.<br />
<br />
'''Ideal operating conditions:''' IR sensors and Lidars can both become erratic when exposed to sunlight interference. Some sensors will work perfectly outside while others may be fine with ambient sunlight and have problems only when pointed towards the sun. The rest range from slightly noisy to completely unusable outside.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Data is easily processed, allowing the use of cheaper [[Electronic Control Units|microcontrollers]]<br />
*Less expensive than 2D Lidar<br />
*Good detection range and update rate<br />
*1D Lidar has good accuracy<br />
*Can be used for 1D positioning or following applications<br />
<br />
'''Sensor Cons:'''<br />
<br />
*IR sensors often have discontinuous, nonlinear, and/or noisy output.<br />
*Only detects obstacles in a narrow beam. If these are the primary obstacle detection sensors on a robot then several of them are required and there will still be big gaps in the detection zone – between the beams and above/below them.<br />
*You may be tempted to sweep the sensor using an [[RC and Servo Support|RC servo]] or something, but this generally doesn’t work very well. You’re better off buying a cheap 2D lidar at that point.<br />
*These sensors can be vulnerable to dirt/dust and scratches.<br />
<br />
===[[Ultrasonic_Distance_Sensor|Ultrasonic Distance Sensors]]===<br />
[[File:maxsonar ez1 ultrasonic sensor.jpg|thumb|250x250px|<sdr item id=1347>Maxsonar EZ1 Ultrasonic Distance Sensor</sdr item>]]<br />
'''Obstacle Detection:''' [[Ultrasonic_Distance_Sensor|Ultrasonic Distance Sensors]] detect obstacles in a cone. Although the detection area is significantly larger than IR and 1D lidar, the ultrasonic sensor still only measures the distance to the closest object. Maximum detection range is about 15 feet.<br />
<br />
'''Ideal operating conditions:''' No sources of external ultrasonic noise present.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Data is easily processed, allowing the use of cheaper [[Electronic Control Units|microcontrollers]]<br />
*Inexpensive<br />
*Good detection range and update rate<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Ultrasonic emissions can echo, causing the receiver to pick up “ghost” data<br />
*Similarly, complications can arise if multiple ultrasonic sensors are used since receivers can pick up emissions from other sensors. Some effort may be required to coordinate the emit/receive measurement times for each sensor.<br />
<br />
==Advanced [[Obstacle Detection]] Sensors==<br />
<br />
The sensors in this section can detect obstacles in 2 or 3 dimensions and are capable of generating maps of the environment.<br />
<br />
===[[Lidar#2D_Lidar|2D Lidar]]===<br />
[[File:Hokuyo UST10LX 2D Lidar.jpg|thumb|250x250px|<sdr item id=2253>Hokuyo UST-10LX 2D Lidar</sdr item>]]<br />
'''Obstacle Detection:''' Detects obstacles surrounding the robot. The [[Lidar#2D_Lidar|2D lidar]] generates a ring of points that extend to the closest obstacle in all directions. Able to create a rough map of the robot’s immediate surroundings.<br />
<br />
'''Ideal operating conditions:''' Installed at a height where obstacles are expected to be encountered. Some Lidars are sensitive to sunlight, depending on the specific model and design.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Less data to process than a 3D Lidar<br />
*Much more coverage than 1D sensors like IR and 1D Lidar<br />
*Can be used to generate a 2D map and utilize 2D SLAM<br />
*Good detection range and update rate<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Can only see obstacles on a single horizontal plane, unable to see above and below the sensor<br />
*More data than 1D sensors, usually requiring a small computer to use<br />
*Unreliable when the robot pitches and rolls, due to the detection plane intersecting the ground<br />
<br />
===[[Lidar#3D Lidar|3D Lidar]]===<br />
[[File:Ouster 3D Lidar.png|thumb|250x250px|Ouster 3D Lidar]]<br />
'''Obstacle Detection:''' Detects obstacles surrounding the robot in 3D space. The 3D lidar generates a cloud of points that extend out from the sensor in all directions horizontally and 30 degrees above and below the sensor vertically. Able to create a detailed map of the robot’s surroundings, including obstacles above the robot and below the lidar.<br />
<br />
'''Ideal operating conditions:''' Installed on the top of the robot, low enough to the ground where the 30 degree window is able to see the area directly in front of the robot. Some Lidars are sensitive to sunlight, depending on the specific model and design.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Full coverage of the robot’s environment<br />
*Can be used to generate a 3D map and utilize 3D SLAM<br />
*Reliable due to the large number of data points to base position off of<br />
*Works in 3D environments where the robot is pitching, rolling, and changing in elevation. Can generate 3D position and orientation estimates.<br />
*Can detect obstacles above and below itself, which a 2D lidar would miss.<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Expensive<br />
*Generates a large amount of data, which requires a more powerful computer to process and make use of<br />
*Limited viewing angle, restricts where the sensor can be placed effectively<br />
<br />
===Computer Vision===<br />
[[Category:Controls]]<br />
[[Category:Autonomous]]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Software Engineering]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Motors&diff=1871Motors2021-04-16T19:10:34Z<p>Brent: </p>
<hr />
<div>A motor is an electromechanical device that converts electrical energy to mechanical energy.<br />
<br />
==Motor Gearing==<br />
An electric DC motor spins very fast, often in the range of 4000-6000 RPM and has very little torque. This isn't very useful for a robot. Most robots move at relatively slow speeds and need high torque. Luckily, we can use a gearbox to slow the motor down and generate more torque. The more the motor is geared down, the more torque it will have. We use brushed DC <sdr category id=7>gear motors</sdr category> meaning that they come with a gearbox already attached. We categorize the motors first by their size and then we specify the further by their speed.<br />
<br />
Your car uses a transmission and starts in 1st gear (most reduced) so you have the low-end torque to start moving. Then, as you speed up, you change gears to get more speed. Most robots, however, cannot change gears. The maximum speed and torque are fixed. You have to find the right balance so you have enough torque to get started from zero speed, but then enough top-end speed. If you gear it down too much you will have plenty of power, but never get any speed. If it's not geared enough it will probably be plenty fast but it will have trouble accelerating, driving up hills, and turning. You need to find a balance where it works well for both. The big electric motors will help because they will muscle through it if you don't have it geared just right, but if it works too hard you will be drawing a ton of current and burning up your batteries!<br />
==Available Motors==<br />
<br />
*<sdr category id=60> Servos</sdr category> - Very small robots < 5 lbs<br />
*<sdr category id=76> 32mm Gear Motors</sdr category> - Small to medium robots 5-35 lbs<br />
*<sdr category id=77> 42mm Gear Motors</sdr category> - Small to medium-large robots 5-50 lbs<br />
*<sdr category id=78> 52mm Gear Motors</sdr category> - Medium to large robots 25-150 lbs<br />
*<sdr category id=84> 90mm Gear Motors</sdr category> - Large robots up to 250 lbs<br />
*<sdr category id=123> Micro Metal Gear Motors</sdr category> - Very small robots < 5 lbs<br />
*<sdr category id=131> Wheelchair Motors</sdr category> - Large robots up to 250 lbs<br />
<br />
<br /><br />
<br />
[[Category:Mechanical Components]]<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Motors&diff=1870Motors2021-04-16T19:08:49Z<p>Brent: </p>
<hr />
<div>A motor is an electromechanical device that generates rotational energy when an electric voltage is applied to it.<br />
<br />
== Motor Gearing ==<br />
An electric DC motor spins very fast, often in the range of 4000-6000 RPM and has very little torque. This isn't very useful for a robot. Most robots move at relatively slow speeds and need high torque. Luckily, we can use a gearbox to slow the motor down and generate more torque. The more the motor is geared down, the more torque it will have. We use brushed DC <sdr category id=7>gear motors</sdr category> meaning that they come with a gearbox already attached. We categorize the motors first by their size and then we specify the further by their speed.<br />
<br />
Your car uses a transmission and starts in 1st gear (most reduced) so you have the low-end torque to start moving. Then, as you speed up, you change gears to get more speed. Most robots, however, cannot change gears. The maximum speed and torque are fixed. You have to find the right balance so you have enough torque to get started from zero speed, but then enough top-end speed. If you gear it down too much you will have plenty of power, but never get any speed. If it's not geared enough it will probably be plenty fast but it will have trouble accelerating, driving up hills, and turning. You need to find a balance where it works well for both. The big electric motors will help because they will muscle through it if you don't have it geared just right, but if it works too hard you will be drawing a ton of current and burning up your batteries!<br />
==Available Motors==<br />
<br />
*<sdr category id=60> Servos</sdr category> - Very small robots < 5 lbs<br />
*<sdr category id=76> 32mm Gear Motors</sdr category> - Small to medium robots 5-35 lbs<br />
*<sdr category id=77> 42mm Gear Motors</sdr category> - Small to medium-large robots 5-50 lbs<br />
*<sdr category id=78> 52mm Gear Motors</sdr category> - Medium to large robots 25-150 lbs<br />
*<sdr category id=84> 90mm Gear Motors</sdr category> - Large robots up to 250 lbs<br />
*<sdr category id=123> Micro Metal Gear Motors</sdr category> - Very small robots < 5 lbs<br />
*<sdr category id=131> Wheelchair Motors</sdr category> - Large robots up to 250 lbs<br />
<br />
<br /><br />
<br />
[[Category:Mechanical Components]]<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Speed_Control&diff=1869Speed Control2021-04-16T19:06:46Z<p>Brent: /* Open Loop */</p>
<hr />
<div>Speed control is the process of varying the speed of a [[Motors|motor]] in response to a command input (such as a requested speed). This is the primary function of a [[Motor Controller Support|Motor Controller]]. There are two variants of speed control: open loop and closed loop. In open loop, the command input is directly converted into a command for the motor (usually applied voltage). In closed loop, sensor feedback (usually an [[Encoders|encoder]] or potentiometer) is used to measure the motor speed in real time and adjust the applied motor voltage such that the motor speed more closely follows the commanded speed.<br />
<br />
==Open Loop==<br />
During open loop speed control, the requested speed is directly conv''e''rted into a voltage applied to the motor. This approach is the simplest and easiest to implement and works fine for non-precision use cases. The major drawback of the open loop method is there is no guarantee that the actual motor speed will match the commanded speed. The applied voltage will usually vary as the [[battery]] voltage drops, which means the motors will have less torque and spin more slowly. External loads on the motors/wheels, such as loads on a robot's wheels when going up or downhill or when performing a pivot turn, will affect the resulting motor speeds.<br />
<br />
==Closed Loop==<br />
Closed loop speed control corrects the variation in motor speeds by constantly adjusting the applied voltage to the motors using sensor feedback. Sensor options include using [[encoders]] or potentiometers to measure a motor's speed or using a [[Positioning System]] to monitor the robot's ground speed. Compared to open loop, this approach requires some additional effort including installation of the needed sensors and tuning of the motor control algorithm. Unlike open loop control, the closed loop approach provides a reasonable guarantee that the motor speed will follow the requested speed regardless of battery level and external loads on the motors. Closed loop speed control is well-suited for:<br />
<br />
*Situations where the robot needs to drive completely straight (such as the <sdr item id=2347>RealCow Robotic System</sdr item>, which is operated from horseback)<br />
*[[Vectoring Robot Support|Vectoring robots]]: To vector cleanly in various directions, the wheel speeds of a vectoring robot need to be tightly controlled to ensure they operate in the intended ratios.<br />
*[[Autonomous Robots Hub|Autonomous robots]]: Autonomous robots are much easier to develop when the robot moves the way the software is expecting. Many complications arise when the wheel speeds are varying unpredictably due to external conditions.<br />
<br />
Closed loop speed control is most easily implemented using Roboteq and Roboclaw [[Motor Controller Support|motor controllers]]. These brands perform similarly, but the Roboteq is preferred because it has error detection for situations where something goes wrong and the encoder signal is lost or disconnected.<br />
[[Category:Electrical Engineering]]<br />
[[Category:Software Engineering]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1862Encoder Support2021-04-16T18:31:05Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories==<br />
<br />
===Encoder Buffer and Pull-up Boards===<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
===Motor Controllers with direct encoder feedback===<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
===Motors with Encoders===<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Encoder support'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1861Encoder Support2021-04-16T18:30:34Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories==<br />
<br />
===Encoder Buffer and Pull-up Boards===<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
===Motor Controllers with direct encoder feedback===<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
===Motors with Encoders===<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Encoder support'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Wi-Fi_Robots&diff=1858Wi-Fi Robots2021-04-16T16:18:06Z<p>Brent: </p>
<hr />
<div>This is a guide to working with our WiFi [[Control System|control]] packages. These packages come in variants with and without [[encoders]].<br />
<br />
*<sdr item id=1440>Programmable WiFi Custom Control Interface Package</sdr item><br />
*<sdr item id=3129>Programmable WiFi Custom Control Interface Package with Encoder Reading</sdr item><br />
<br />
The WiFi control packages are implemented on our <sdr item id=1320>Programmable WiFi Mobile 4WD Robot Development Platform</sdr item> and can be selected as an option on most of our <sdr category id=195>Robot Kits</sdr category> and <sdr category id=194>Programmable Robots</sdr category>.<br />
<br />
===Setup===<br />
<br />
====Wireless Connectivity====<br />
<br />
=====Built-in Network=====<br />
The robot comes with its own wireless network. Just turn it on and wait for WiFiATR-Setup to appear on your device's network list. Next, open your browser and navigate to http://wifi-atr.local/ (if this doesn't work, try http://wifi-atr/ some devices work differently for this).<br />
<br />
Once you have the interface pulled up (image below), you can either start using the robot or connect it to an existing Wi-Fi network.<br />
[[File:WiFiATR GUI.png|center|thumb|500x500px]]<br />
<br />
=====Connect to Existing Network=====<br />
To connect to an existing network, click the gear icon on the GUI. This will being you to a configuration page(below). From here, click "Fetch Names" to load available networks. <br />
[[File:Configuration page for WiFiATR.png|center|thumb|500x500px]]<br />
Once the networks load, select one from the drop-down list and type in the password for the network. Once you are ready to connect, click the "Submit" button and the robot will reboot and connect to the new network. If you mistype the password or something goes wrong while connecting, don't worry, the setup network will remain available for reconfiguration.<br />
<br />
<br /><br />
<br />
===Camera===<br />
Digital camera with pan and tilt controls. You can control the pan and tilt with the left virtual joystick on the web interface. You are also able to center the camera with a button in the GUI.<br />
[[File:TP-600-165 Camera.jpg|center|thumb|500x500px]]<br />
<br />
===Add-Ons===<br />
The Programmable WiFi Mobile 4WD Robot Development Platform (TP-600-165) comes with 4 relays that can be turned on and off from the web GUI. This allows you to add a variety of devices to the robot and control them without even needing to modify the code running on the robot. <br />
<br />
The robot's hardware also supports multiple extra PWM deices, analog and digital inputs, digital outputs, UART serial devices, and more! <br />
<br /><br />
<br />
===Control Package===<br />
We also offer a WiFi control package that can be integrated into a large number of our robots. This essentially adds the ability to control a wide range of our robot platforms over WiFi from a smartphone/tablet/computer. You can easily plug in a USB webcam, add servos, connect to the relays, etc.<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Wi-Fi_Robots&diff=1857Wi-Fi Robots2021-04-16T16:17:46Z<p>Brent: </p>
<hr />
<div>This is a guide to working with our WiFi [[Control System|control]] packages. These packages come in variants with and without [[encoders]].<br />
<br />
*<sdr item id=1440>Programmable WiFi Custom Control Interface Package</sdr item><br />
*<sdr item id=3129>Programmable WiFi Custom Control Interface Package with Encoder Reading</sdr item><br />
<br />
These control packages are implemented on our <sdr item id=1320>Programmable WiFi Mobile 4WD Robot Development Platform</sdr item> and can be selected as an option on most of our <sdr category id=195>Robot Kits</sdr category> and <sdr category id=194>Programmable Robots</sdr category>.<br />
<br />
===Setup===<br />
<br />
====Wireless Connectivity====<br />
<br />
=====Built-in Network=====<br />
The robot comes with its own wireless network. Just turn it on and wait for WiFiATR-Setup to appear on your device's network list. Next, open your browser and navigate to http://wifi-atr.local/ (if this doesn't work, try http://wifi-atr/ some devices work differently for this).<br />
<br />
Once you have the interface pulled up (image below), you can either start using the robot or connect it to an existing Wi-Fi network.<br />
[[File:WiFiATR GUI.png|center|thumb|500x500px]]<br />
<br />
=====Connect to Existing Network=====<br />
To connect to an existing network, click the gear icon on the GUI. This will being you to a configuration page(below). From here, click "Fetch Names" to load available networks. <br />
[[File:Configuration page for WiFiATR.png|center|thumb|500x500px]]<br />
Once the networks load, select one from the drop-down list and type in the password for the network. Once you are ready to connect, click the "Submit" button and the robot will reboot and connect to the new network. If you mistype the password or something goes wrong while connecting, don't worry, the setup network will remain available for reconfiguration.<br />
<br />
<br /><br />
<br />
===Camera===<br />
Digital camera with pan and tilt controls. You can control the pan and tilt with the left virtual joystick on the web interface. You are also able to center the camera with a button in the GUI.<br />
[[File:TP-600-165 Camera.jpg|center|thumb|500x500px]]<br />
<br />
===Add-Ons===<br />
The Programmable WiFi Mobile 4WD Robot Development Platform (TP-600-165) comes with 4 relays that can be turned on and off from the web GUI. This allows you to add a variety of devices to the robot and control them without even needing to modify the code running on the robot. <br />
<br />
The robot's hardware also supports multiple extra PWM deices, analog and digital inputs, digital outputs, UART serial devices, and more! <br />
<br /><br />
<br />
===Control Package===<br />
We also offer a WiFi control package that can be integrated into a large number of our robots. This essentially adds the ability to control a wide range of our robot platforms over WiFi from a smartphone/tablet/computer. You can easily plug in a USB webcam, add servos, connect to the relays, etc.<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Wi-Fi_Robots&diff=1856Wi-Fi Robots2021-04-16T16:17:00Z<p>Brent: </p>
<hr />
<div>This is a guide to working with our WiFi control packages. These packages come in variants with and without [[encoders]].<br />
<br />
*<sdr item id=1440>Programmable WiFi Custom Control Interface Package</sdr item><br />
*<sdr item id=3129>Programmable WiFi Custom Control Interface Package with Encoder Reading</sdr item><br />
<br />
These control packages are implemented on our <sdr item id=1320>Programmable WiFi Mobile 4WD Robot Development Platform</sdr item> and can be selected as an option on most of our <sdr category id=195>Robot Kits</sdr category> and <sdr category id=194>Programmable Robots</sdr category>.<br />
<br />
===Setup===<br />
<br />
====Wireless Connectivity====<br />
<br />
=====Built-in Network=====<br />
The robot comes with its own wireless network. Just turn it on and wait for WiFiATR-Setup to appear on your device's network list. Next, open your browser and navigate to http://wifi-atr.local/ (if this doesn't work, try http://wifi-atr/ some devices work differently for this).<br />
<br />
Once you have the interface pulled up (image below), you can either start using the robot or connect it to an existing Wi-Fi network.<br />
[[File:WiFiATR GUI.png|center|thumb|500x500px]]<br />
<br />
=====Connect to Existing Network=====<br />
To connect to an existing network, click the gear icon on the GUI. This will being you to a configuration page(below). From here, click "Fetch Names" to load available networks. <br />
[[File:Configuration page for WiFiATR.png|center|thumb|500x500px]]<br />
Once the networks load, select one from the drop-down list and type in the password for the network. Once you are ready to connect, click the "Submit" button and the robot will reboot and connect to the new network. If you mistype the password or something goes wrong while connecting, don't worry, the setup network will remain available for reconfiguration.<br />
<br />
<br /><br />
<br />
===Camera===<br />
Digital camera with pan and tilt controls. You can control the pan and tilt with the left virtual joystick on the web interface. You are also able to center the camera with a button in the GUI.<br />
[[File:TP-600-165 Camera.jpg|center|thumb|500x500px]]<br />
<br />
===Add-Ons===<br />
The Programmable WiFi Mobile 4WD Robot Development Platform (TP-600-165) comes with 4 relays that can be turned on and off from the web GUI. This allows you to add a variety of devices to the robot and control them without even needing to modify the code running on the robot. <br />
<br />
The robot's hardware also supports multiple extra PWM deices, analog and digital inputs, digital outputs, UART serial devices, and more! <br />
<br /><br />
<br />
===Control Package===<br />
We also offer a WiFi control package that can be integrated into a large number of our robots. This essentially adds the ability to control a wide range of our robot platforms over WiFi from a smartphone/tablet/computer. You can easily plug in a USB webcam, add servos, connect to the relays, etc.<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Battery&diff=1854Battery2021-04-16T15:54:44Z<p>Brent: /* Battery Type and Capacity */</p>
<hr />
<div>A battery is a component that can store and supply electrical energy.<br />
==Battery Comparison Table==<br />
{| class="sortable cuscosky"<br />
|-<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Battery<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Type<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Nominal Voltage (VDC)<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Capacity (Ah)<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Weight (lbs)<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Size LxWxH (in x in x in)<br />
|-<br />
!<br />
!<br />
!<br />
!<br />
!<br />
!<br />
|-<br />
|<sdr item id=1221>Interstate 12 Volt 8 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|8<br />
|5.11<br />
|5.95x2.56x3.86<br />
|-<br />
|<sdr item id=1507>Interstate 12 Volt 12 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|12<br />
|9.42<br />
|5.93x3.84x4.02<br />
|-<br />
|<sdr item id=1508>Interstate 12 Volt 18 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|18<br />
|13.85<br />
| style="vertical-align:middle;text-align:left;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:left;&quot;}" |7.2x3.0x6.6<br />
|-<br />
|<sdr item id=1509>Interstate 12 Volt 26 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|26<br />
|20.7<br />
|6.9x6.55x5.0<br />
|-<br />
|<sdr item id=1790>Interstate 12 Volt 35 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|35<br />
|24<br />
|7.7x5.16x6.62<br />
|-<br />
|<sdr item id=2330>Interstate 12 Volt 55 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|55<br />
|37.5<br />
|9.02x5.43x8.89<br />
|-<br />
|<sdr item id=1139>K2 12.8V LiFePO4 Battery Pack 11.1Ahr</sdr item><br />
|LiFePO4<br />
|12.8<br />
|11.1<br />
|2.86<br />
|5.94x2.53x3.83<br />
|-<br />
|<sdr item id=2743>Shenzhen 12.8V LiFePO4 Battery 42Ah</sdr item><br />
|LiFePO4<br />
|12.8<br />
|42<br />
|13.45<br />
|8.7x6.9x4.7<br />
|-<br />
|<sdr item id=1140>K2 25.6V LiFePO4 Battery Pack 9.6Ahr</sdr item><br />
|LiFePO4<br />
|25.6<br />
|9.6<br />
|5.5<br />
|4.5x3.5x6.6<br />
|-<br />
|<sdr item id=1918>LiPo Battery 7.4V 2200 mAh</sdr item><br />
|LiPo<br />
|7.4<br />
|2.2<br />
|0.30<br />
|4.13x1.29x0.67<br />
|-<br />
|<sdr item id=1785>LiPo Battery 11.1V 2200 mAh</sdr item><br />
|LiPo<br />
|11.1<br />
|2.2<br />
|0.41<br />
|4.05x1.30x0.94<br />
|-<br />
|<sdr item id=1569>Polymer Li-ion Battery 7.4V 3650mAh</sdr item><br />
|Li-Ion<br />
|7.4<br />
|2.2<br />
|0.37<br />
|5.5x3.7x0.3<br />
|-<br />
|<sdr item id=1128>Polymer Li-Ion Battery 11.1V 1800 mAh</sdr item><br />
|Li-Ion<br />
|11.1<br />
|1.8<br />
|0.27<br />
|3.4x2.0x0.67<br />
|-<br />
|<sdr item id=1009>High Power Polymer Li-Ion Module 11.1V 5Ah</sdr item><br />
|Li-Ion<br />
|11.1<br />
|5<br />
|0.69<br />
|3.1x2.8x1.0<br />
|-<br />
|<sdr item id=1823>High Power Polymer Li-Ion Module 11.1V 10Ah</sdr item><br />
|Li-Ion<br />
|11.1<br />
|10<br />
|1.3<br />
|6.5x2.5x1.3<br />
|-<br />
|<sdr item id=1823>High Power Polymer Li-Ion Module 22.2V 10Ah</sdr item><br />
|Li-Ion<br />
|22.2<br />
|10<br />
|3.3<br />
|6.3x3.0x2.8<br />
|}<br />
==Selecting Batteries for a Robot==<br />
[[File:K2 LiFePO4 25.6V Battery.jpg|thumb|200x200px|<sdr item id=1140>K2 25.6V LiFePO4 Battery</sdr item>|link=https://wiki.sdrobots.com/index.php/File:K2_LiFePO4_25.6V_Battery.jpg]]When selecting the appropriate batteries for your robot, you need to size them by voltage to match the desired motors and motor controller. You will also need to take into consideration the maximum current output and the battery type and capacity.<br />
===<span class="mw-headline ve-pasteProtect" id="Voltage_Rating">Voltage Rating</span>===<br />
Our motors are rated for either 12V or 24V. Incorrectly providing a 24V source to a 12V motor will immediately cause permanent damage. If only connected for a short period of time the observed damage will be limited to a whining sound when the motor is moving. A prolonged over-voltage condition will cause catastrophic damage to the motor and this may pose a significant risk of fire, injury, or death. Be sure that the appropriate power is applied to the motors. If the motors receive insufficient voltage, say 12V to a 24V motor, the motor will either move very slow or not at all.<br />
<br />
In order to distribute the weight of a battery evenly across the robot, its common practice to use multiple 12V batteries to prevent the robot from favoring one side while driving. For a 12V motor system, the batteries will need to be connected in parallel and for a 24V system, they will need to be connected in series.<br />
<br />
'''Note:''' When using a multiple battery system, always be sure that each battery is individually fused.<br />
===<span class="mw-headline ve-pasteProtect" id="Maximum_Current_Output">Maximum Current Output</span>===<br />
When selecting the appropriate battery source, it is wise to be sure that the battery can produce the amount of current needed by your motors and motor controller. Take, for example, Dimension Engineering's Sabertooth 2x12 motor controller. It has two channels and each channel is capable of outputting 12A so for the motor controller to be able to supply a total of 24A to a pair of motors the battery providing power to the system must be capable of supplying that amount of current. It is important to note that the motor system may not be the only major component in your system. Be sure to account for the additional loads on your system, such as a computer, control system, sensors, and a radio.<br />
<br />
'''Note:''' For many hobby RC motors, the batteries will be marked with a C rating. This rating will indicate the maximum continuous current discharge that the batteries are capable of. The C rating is a multiplier that can be applied to the battery capacity to get your maximum continuous discharge. For example, a 2,000mAh 10C battery can output a maximum of 20,000 mA or 20A.<br />
===<span class="mw-headline ve-pasteProtect" id="Battery_Type_and_Capacity">Battery Type and Capacity</span>===<br />
There are two main types of batteries that are discussed here: Lead Acid, Lithium. Lead-acid batteries are the cheapest out of the two. These are the batteries that you typically see in a car or a truck. They do not require special circuit protection, only a fuse. The downside is that they are large and very heavy.<br />
<br />
The second type are Lithium batteries. You will typically see in most electronics today. They are lighter and more compact than lead-acid batteries and are the go-to battery type for RC robotics. One caveat with Li-ion batteries is that they require specific under-voltage circuit protection to prevent the battery from dropping too low. If this happens the battery will be unrecoverable. Most of our Lithium batteries contain the necessary circuit protection to prevent this from happening. Most of the cheap RC batteries you see listed online, do not.<br />
<br />
There are several kinds of Lithium batteries. Lithium-ion is the most common (and the most unstable). Lithium-ion require extreme care so they do not overheat, etc resulting in a fire or explosion. A more stable battery is LiFePO4 chemistry as in our <sdr item id=1140>K2 25.6V 9.6 AHr</sdr item> or <sdr item id=1139>K2 12.8V 11.1AHr</sdr item> batteries. These batteries are much more stable and an excellent choice for powering robots, but they are more expensive.<br />
<br />
On the topic of battery capacity, it is commonly measured in mAHr (milliamp hours). This is a measurement of how long it would take to discharge the battery if it outputted 1mA of current. Larger batteries are typically measured in AHr which is mAHr divided by 1,000. So, a 12V 2000 mAHr (2AHr) battery will last twice as long, under the same conditions, like a 12V 1,000 mAHr (1AHr) battery.<br />
===Power and Battery Wiring===<br />
When wiring your batteries to your robot there are concerns you must address. Namely, what output voltage do you need and how you are going to charge the batteries. When using two 12V batteries you will need to wire them in parallel to power 12V motors and in series to power 24V motors.<br />
<br />
The key things to consider are what voltages do you need and how much power The driving force for the main battery will be the motors. We typically use 24VDC motors, they run at half the current for the same power as 12V motors so smaller wires, motor controllers, etc. Do you need a separate battery for the controller or on-board computer? How are you going to get those voltages (multiple batteries, voltage regulators, etc.)? How much of a load will be on each voltage so your batteries and/or regulators are sized properly? This will help you size your batteries: simple math. If you have a 1Amp load and a 10Ahr (10,000mAhr) battery, the battery will run for 10 hours in theory.<br />
===<span class="mw-headline ve-pasteProtect" id="Robot_Battery_Chargers">Robot Battery Chargers</span>===<br />
When ordering a robot kit as a base for your project, we offer appropriately sized chargers for the supplied batteries. When picking out your own chargers, it is absolutely critical that you pick the charger with the correct voltage and battery type. Not selecting the appropriate charger will be a fire hazard and cause permanent damage to the battery, charger and your property.<br />
[[Category:Electrical Components]]<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Battery&diff=1853Battery2021-04-16T15:53:44Z<p>Brent: /* Battery Type and Capacity */</p>
<hr />
<div>A battery is a component that can store and supply electrical energy.<br />
==Battery Comparison Table==<br />
{| class="sortable cuscosky"<br />
|-<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Battery<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Type<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Nominal Voltage (VDC)<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Capacity (Ah)<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Weight (lbs)<br />
! style="vertical-align:middle;text-align:center;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:center;&quot;}" |Size LxWxH (in x in x in)<br />
|-<br />
!<br />
!<br />
!<br />
!<br />
!<br />
!<br />
|-<br />
|<sdr item id=1221>Interstate 12 Volt 8 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|8<br />
|5.11<br />
|5.95x2.56x3.86<br />
|-<br />
|<sdr item id=1507>Interstate 12 Volt 12 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|12<br />
|9.42<br />
|5.93x3.84x4.02<br />
|-<br />
|<sdr item id=1508>Interstate 12 Volt 18 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|18<br />
|13.85<br />
| style="vertical-align:middle;text-align:left;" data-ve-attributes="{&quot;style&quot;:&quot;vertical-align:middle;text-align:left;&quot;}" |7.2x3.0x6.6<br />
|-<br />
|<sdr item id=1509>Interstate 12 Volt 26 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|26<br />
|20.7<br />
|6.9x6.55x5.0<br />
|-<br />
|<sdr item id=1790>Interstate 12 Volt 35 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|35<br />
|24<br />
|7.7x5.16x6.62<br />
|-<br />
|<sdr item id=2330>Interstate 12 Volt 55 Ah Sealed Lead Acid Battery (SLA)</sdr item><br />
|Lead Acid<br />
|12<br />
|55<br />
|37.5<br />
|9.02x5.43x8.89<br />
|-<br />
|<sdr item id=1139>K2 12.8V LiFePO4 Battery Pack 11.1Ahr</sdr item><br />
|LiFePO4<br />
|12.8<br />
|11.1<br />
|2.86<br />
|5.94x2.53x3.83<br />
|-<br />
|<sdr item id=2743>Shenzhen 12.8V LiFePO4 Battery 42Ah</sdr item><br />
|LiFePO4<br />
|12.8<br />
|42<br />
|13.45<br />
|8.7x6.9x4.7<br />
|-<br />
|<sdr item id=1140>K2 25.6V LiFePO4 Battery Pack 9.6Ahr</sdr item><br />
|LiFePO4<br />
|25.6<br />
|9.6<br />
|5.5<br />
|4.5x3.5x6.6<br />
|-<br />
|<sdr item id=1918>LiPo Battery 7.4V 2200 mAh</sdr item><br />
|LiPo<br />
|7.4<br />
|2.2<br />
|0.30<br />
|4.13x1.29x0.67<br />
|-<br />
|<sdr item id=1785>LiPo Battery 11.1V 2200 mAh</sdr item><br />
|LiPo<br />
|11.1<br />
|2.2<br />
|0.41<br />
|4.05x1.30x0.94<br />
|-<br />
|<sdr item id=1569>Polymer Li-ion Battery 7.4V 3650mAh</sdr item><br />
|Li-Ion<br />
|7.4<br />
|2.2<br />
|0.37<br />
|5.5x3.7x0.3<br />
|-<br />
|<sdr item id=1128>Polymer Li-Ion Battery 11.1V 1800 mAh</sdr item><br />
|Li-Ion<br />
|11.1<br />
|1.8<br />
|0.27<br />
|3.4x2.0x0.67<br />
|-<br />
|<sdr item id=1009>High Power Polymer Li-Ion Module 11.1V 5Ah</sdr item><br />
|Li-Ion<br />
|11.1<br />
|5<br />
|0.69<br />
|3.1x2.8x1.0<br />
|-<br />
|<sdr item id=1823>High Power Polymer Li-Ion Module 11.1V 10Ah</sdr item><br />
|Li-Ion<br />
|11.1<br />
|10<br />
|1.3<br />
|6.5x2.5x1.3<br />
|-<br />
|<sdr item id=1823>High Power Polymer Li-Ion Module 22.2V 10Ah</sdr item><br />
|Li-Ion<br />
|22.2<br />
|10<br />
|3.3<br />
|6.3x3.0x2.8<br />
|}<br />
==Selecting Batteries for a Robot==<br />
[[File:K2 LiFePO4 25.6V Battery.jpg|thumb|200x200px|<sdr item id=1140>K2 25.6V LiFePO4 Battery</sdr item>|link=https://wiki.sdrobots.com/index.php/File:K2_LiFePO4_25.6V_Battery.jpg]]When selecting the appropriate batteries for your robot, you need to size them by voltage to match the desired motors and motor controller. You will also need to take into consideration the maximum current output and the battery type and capacity.<br />
===<span class="mw-headline ve-pasteProtect" id="Voltage_Rating">Voltage Rating</span>===<br />
Our motors are rated for either 12V or 24V. Incorrectly providing a 24V source to a 12V motor will immediately cause permanent damage. If only connected for a short period of time the observed damage will be limited to a whining sound when the motor is moving. A prolonged over-voltage condition will cause catastrophic damage to the motor and this may pose a significant risk of fire, injury, or death. Be sure that the appropriate power is applied to the motors. If the motors receive insufficient voltage, say 12V to a 24V motor, the motor will either move very slow or not at all.<br />
<br />
In order to distribute the weight of a battery evenly across the robot, its common practice to use multiple 12V batteries to prevent the robot from favoring one side while driving. For a 12V motor system, the batteries will need to be connected in parallel and for a 24V system, they will need to be connected in series.<br />
<br />
'''Note:''' When using a multiple battery system, always be sure that each battery is individually fused.<br />
===<span class="mw-headline ve-pasteProtect" id="Maximum_Current_Output">Maximum Current Output</span>===<br />
When selecting the appropriate battery source, it is wise to be sure that the battery can produce the amount of current needed by your motors and motor controller. Take, for example, Dimension Engineering's Sabertooth 2x12 motor controller. It has two channels and each channel is capable of outputting 12A so for the motor controller to be able to supply a total of 24A to a pair of motors the battery providing power to the system must be capable of supplying that amount of current. It is important to note that the motor system may not be the only major component in your system. Be sure to account for the additional loads on your system, such as a computer, control system, sensors, and a radio.<br />
<br />
'''Note:''' For many hobby RC motors, the batteries will be marked with a C rating. This rating will indicate the maximum continuous current discharge that the batteries are capable of. The C rating is a multiplier that can be applied to the battery capacity to get your maximum continuous discharge. For example, a 2,000mAh 10C battery can output a maximum of 20,000 mA or 20A.<br />
===<span class="mw-headline ve-pasteProtect" id="Battery_Type_and_Capacity">Battery Type and Capacity</span>===<br />
There are two main types of batteries that are discussed here: Lead Acid, Lithium. Lead-acid batteries are the cheapest out of the two. These are the batteries that you typically see in a car or a truck. They do not require special circuit protection, only a fuse. The downside is that they are large and very heavy.<br />
<br />
The second type are Lithium batteries. You will typically see in most electronics today. They are lighter and more compact than lead-acid batteries and are the go-to battery type for RC robotics. One caveat with Li-ion batteries is that they require specific under-voltage circuit protection to prevent the battery from dropping too low. If this happens the battery will be unrecoverable. Most of our Lithium batteries contain the necessary circuit protection to prevent this from happening. Most of the cheap RC batteries you see listed online, do not.<br />
<br />
There are several kinds of Lithium batteries. Lithium-ion is the most common (and the most unstable). Lithium-ion require extreme care so they do not overheat, etc resulting in a fire or explosion. A more stable battery is LiFePO4 chemistry as in our <sdr item id=1140>K2 25.6V LiFePO4 Battery Pack 9.6Ahr</sdr item> or <sdr item id=1139>K2 12.8V LiFePO4 Battery Pack 11.1Ahr</sdr item> batteries. These batteries are much more stable and an excellent choice for powering robots, but they are more expensive.<br />
<br />
On the topic of battery capacity, it is commonly measured in mAHr (milliamp hours). This is a measurement of how long it would take to discharge the battery if it outputted 1mA of current. Larger batteries are typically measured in AHr which is mAHr divided by 1,000. So, a 12V 2000 mAHr (2AHr) battery will last twice as long, under the same conditions, like a 12V 1,000 mAHr (1AHr) battery.<br />
===Power and Battery Wiring===<br />
When wiring your batteries to your robot there are concerns you must address. Namely, what output voltage do you need and how you are going to charge the batteries. When using two 12V batteries you will need to wire them in parallel to power 12V motors and in series to power 24V motors.<br />
<br />
The key things to consider are what voltages do you need and how much power The driving force for the main battery will be the motors. We typically use 24VDC motors, they run at half the current for the same power as 12V motors so smaller wires, motor controllers, etc. Do you need a separate battery for the controller or on-board computer? How are you going to get those voltages (multiple batteries, voltage regulators, etc.)? How much of a load will be on each voltage so your batteries and/or regulators are sized properly? This will help you size your batteries: simple math. If you have a 1Amp load and a 10Ahr (10,000mAhr) battery, the battery will run for 10 hours in theory.<br />
===<span class="mw-headline ve-pasteProtect" id="Robot_Battery_Chargers">Robot Battery Chargers</span>===<br />
When ordering a robot kit as a base for your project, we offer appropriately sized chargers for the supplied batteries. When picking out your own chargers, it is absolutely critical that you pick the charger with the correct voltage and battery type. Not selecting the appropriate charger will be a fire hazard and cause permanent damage to the battery, charger and your property.<br />
[[Category:Electrical Components]]<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=How_to_Add_Encoders_to_a_Robot&diff=1852How to Add Encoders to a Robot2021-04-16T15:51:46Z<p>Brent: </p>
<hr />
<div>This is a practical guide to adding [[encoders]] to a robot. Encoders are attached to a robot's drive motors in order to track wheel speed, distance traveled, and/or implement [[Speed Control#Closed Loop|closed loop speed control]].<br />
<br />
In addition to the encoders themselves, extra components and circuitry are needed to interface with and keep track of the encoder output over time. This guide will cover how to select the correct options to add encoders to a robot kit and go into more detail about the required components.<br />
<br />
==Adding Encoders to a Robot Kit==<br />
If you're purchasing a robot from SuperDroid Robots and want to add encoders to the robot then follow these guidelines when selecting options.<br />
<br />
*[[Motors]]: Make sure to select motors with encoders! Most kits will have options for motors with and without encoders. To have encoders on the robot, you will need to select an option that says "with Encoders".<br /><br />
<br />
[[File:motorOptionExample2.png|center|frame|Example Motor Options on an IG42 Robot Kit]]<br />
<br />
*[[Motor Controller Support|Motor Controllers]]: We offer three types of motor controllers with our robot kits: Roboclaw, Sabertooth, and Roboteq. Both Roboclaw and Roboteq motor controllers are able to connect directly to the encoders, keep track of the number of pulses observed, and perform closed loop speed control on the motors using the encoder information. Sabertooth motor controllers are not able to directly connect with encoders. We address this by instead using an Encoder Buffer Board and a microcontroller together to read encoder pulses. We do not provide a closed loop speed control solution with Sabertooths. <br />If you are using encoders, we highly recommend going with a '''Roboteq''' motor controller as there is a plethora of built-in functionality and failsafe options in the software. We do, however, offer encoder options for each motor controller. <br />[[File:motorControllerOptionExample.png|center|frame|Example Motor Controller Options on an IG42 Robot Kit]]<br />
*Encoder Options: Pick the Encoder Kit that corresponds to your selected Motor Controller. Note that there are three versions of Sabertooth Hookup Kit (<sdr item id=3122>Dual</sdr item>, <sdr item id=3123>Triple</sdr item>, and <sdr item id=3124>Quadruple</sdr item>) because they each come with a different version of the <sdr item id=1523>Encoder Buffer Board</sdr item> based on the number of wheels that need to be monitored. The <sdr item id=3121>Roboclaw</sdr item> and <sdr item id=3120>Roboteq</sdr item> kits are only designed for 2 encoders and will simply come in a set of 2 when three or four wheels will have encoders.<br /><br />
<br />
[[File:encoderKitOptionExample.png|center|frame|Example Encoder Kit Options on an IG42 Robot Kit]]<br />
<br /><br />
<br />
==Encoder Hardware==<br />
Encoders can either come attached to the motor or installed separately as standalone units.<br />
<br />
===Motors with Encoders===<br />
[[File:TD-044-078 ig42 motor encoders.jpg|thumb|230x230px|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Our IG32, IG42, and IG52 gear motors come in variants with and without encoders. In the picture to the right, the encoder is inside the black end cap. There are four wires coming out of the encoder unit that provide access to the encoder power and [[Encoders#Encoder Output|quadrature]] A and B pulse signals.<br />
{| class="wikitable"<br />
|+<br />
!Wire Color<br />
!Function<br />
|-<br />
|Brown<br />
|5V Power Input<br />
|-<br />
|Green<br />
|Ground<br />
|-<br />
|Blue<br />
|Quadrature A<br />
|-<br />
|Purple<br />
|Quadrature B<br />
|}<br />
<br />
<br />
With these encoders, the A and B signals must have 1k pull-up resistors connected between each signal and the encoder 5V power. When we install these on our robots we include these resistors on either a <sdr item id=2760>Roboteq DB15 Breakout Board</sdr item>, <sdr item id=2397>Encoder Buffer Board</sdr item>, or <sdr item id=1512>Encoder Pullup Board</sdr item>, depending on the motor controller used.<br />
===Standalone Encoders===<br />
[[File:us digital h1 encoder.jpg|thumb|230x230px|US Digital H1 Encoder]]<br />
There are standalone encoder units that can be purchased and installed on a robot separately from the motors. These are less convenient since they need to be mechanically mounted and somehow coupled to the motor or drive shaft instead of being part of an all-in-one solution. We don't usually offer these as options but we do use them in situations where the motors do not offer encoder variants (such as on the <sdr item id=2654>HK1000</sdr item>, which uses <sdr item id=2767>wheelchair motors</sdr item>).<br />
<br />
<br />
<br />
<br /><br />
==Reading Encoders==<br />
We have a few preferred methods for tracking and reading encoder values.<br />
===Roboteq Motor Controller===<br />
Roboteq motor controllers include built-in functionality to connect directly with the encoder A and B quadrature signals, detect pulses, and maintain a count of the number of pulses observed. Roboteqs can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]].<br />
[[File:roboteq db15 encoder schematic.png|center|frame|Roboteq SDC2160 with Encoders Schematic]]<br />
<br /><br />
<br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
===Roboclaw Motor Controller===<br />
Roboclaw motor controllers are able to connect directly to the encoder quadrature signals and keep track of the number of pulses observed. Roboclaws can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]].<br />
[[File:Roboclaw Encoders Schematic.png|center|frame|Roboclaw 2x15 with Encoders Schematic]]<br />
<br /><br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
<br />
===Encoder Buffer Board===<br />
This board is always an option when the robot's motor controller (such as a Sabertooth) does not support encoder reading. This device uses the LS7366R chip and connects directly to the encoders, maintains a count of the encoder pulses, and provides a SPI interface to read the counts with a microcontroller. We sell this board in 1-, 2-, 3-, and 4-channel variants. The board provides optional pullup resistors for the encoder A and B signals so no additional circuitry is required.<br />
<br />
*<sdr item id=2397>Single LS7366R Encoder Buffer Board (TE-183-001)</sdr item><br />
*<sdr item id=1523>Dual LS7366R Encoder Buffer Board (TE-083-002)</sdr item><br />
*<sdr item id=2398>Triple LS7366R Encoder Buffer Board (TE-183-003)</sdr item><br />
*<sdr item id=2418>Quadruple LS7366R Encoder Buffer Board (TE-183-004)</sdr item><br />
<br />
[[Category:Sensors]]<br />
[[Category:Encoders]]<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=How_to_Add_Encoders_to_a_Robot&diff=1851How to Add Encoders to a Robot2021-04-16T15:50:00Z<p>Brent: </p>
<hr />
<div>This is a practical guide to adding [[encoders]] to a robot. Encoders are added to a robot's drive motors in order to track wheel speed, distance traveled, and/or implement [[Speed Control#Closed Loop|closed loop speed control]].<br />
<br />
In addition to the encoders themselves, extra components and circuitry are needed to interface with and keep track of the encoder output over time. This guide will cover how to select the correct options to add encoders to a robot kit and go into more detail about the required components.<br />
<br />
==Adding Encoders to a Robot Kit==<br />
If you're purchasing a robot from SuperDroid Robots and want to add encoders to the robot then follow these guidelines when selecting options.<br />
<br />
*[[Motors]]: Make sure to select motors with encoders! Most kits will have options for motors with and without encoders. To have encoders on the robot, you will need to select an option that says "with Encoders".<br /><br />
<br />
[[File:motorOptionExample2.png|center|frame|Example Motor Options on an IG42 Robot Kit]]<br />
<br />
*[[Motor Controller Support|Motor Controllers]]: We offer three types of motor controllers with our robot kits: Roboclaw, Sabertooth, and Roboteq. Both Roboclaw and Roboteq motor controllers are able to connect directly to the encoders, keep track of the number of pulses observed, and perform closed loop speed control on the motors using the encoder information. Sabertooth motor controllers are not able to directly connect with encoders. We address this by instead using an Encoder Buffer Board and a microcontroller together to read encoder pulses. We do not provide a closed loop speed control solution with Sabertooths. <br />If you are using encoders, we highly recommend going with a '''Roboteq''' motor controller as there is a plethora of built-in functionality and failsafe options in the software. We do, however, offer encoder options for each motor controller. <br />[[File:motorControllerOptionExample.png|center|frame|Example Motor Controller Options on an IG42 Robot Kit]]<br />
*Encoder Options: Pick the Encoder Kit that corresponds to your selected Motor Controller. Note that there are three versions of Sabertooth Hookup Kit (<sdr item id=3122>Dual</sdr item>, <sdr item id=3123>Triple</sdr item>, and <sdr item id=3124>Quadruple</sdr item>) because they each come with a different version of the <sdr item id=1523>Encoder Buffer Board</sdr item> based on the number of wheels that need to be monitored. The <sdr item id=3121>Roboclaw</sdr item> and <sdr item id=3120>Roboteq</sdr item> kits are only designed for 2 encoders and will simply come in a set of 2 when three or four wheels will have encoders.<br /><br />
<br />
[[File:encoderKitOptionExample.png|center|frame|Example Encoder Kit Options on an IG42 Robot Kit]]<br />
<br /><br />
<br />
==Encoder Hardware==<br />
Encoders can either come attached to the motor or installed separately as standalone units.<br />
<br />
===Motors with Encoders===<br />
[[File:TD-044-078 ig42 motor encoders.jpg|thumb|230x230px|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Our IG32, IG42, and IG52 gear motors come in variants with and without encoders. In the picture to the right, the encoder is inside the black end cap. There are four wires coming out of the encoder unit that provide access to the encoder power and [[Encoders#Encoder Output|quadrature]] A and B pulse signals.<br />
{| class="wikitable"<br />
|+<br />
!Wire Color<br />
!Function<br />
|-<br />
|Brown<br />
|5V Power Input<br />
|-<br />
|Green<br />
|Ground<br />
|-<br />
|Blue<br />
|Quadrature A<br />
|-<br />
|Purple<br />
|Quadrature B<br />
|}<br />
<br />
<br />
With these encoders, the A and B signals must have 1k pull-up resistors connected between each signal and the encoder 5V power. When we install these on our robots we include these resistors on either a <sdr item id=2760>Roboteq DB15 Breakout Board</sdr item>, <sdr item id=2397>Encoder Buffer Board</sdr item>, or <sdr item id=1512>Encoder Pullup Board</sdr item>, depending on the motor controller used.<br />
===Standalone Encoders===<br />
[[File:us digital h1 encoder.jpg|thumb|230x230px|US Digital H1 Encoder]]<br />
There are standalone encoder units that can be purchased and installed on a robot separately from the motors. These are less convenient since they need to be mechanically mounted and somehow coupled to the motor or drive shaft instead of being part of an all-in-one solution. We don't usually offer these as options but we do use them in situations where the motors do not offer encoder variants (such as on the <sdr item id=2654>HK1000</sdr item>, which uses <sdr item id=2767>wheelchair motors</sdr item>).<br />
<br />
<br />
<br />
<br /><br />
==Reading Encoders==<br />
We have a few preferred methods for tracking and reading encoder values.<br />
===Roboteq Motor Controller===<br />
Roboteq motor controllers include built-in functionality to connect directly with the encoder A and B quadrature signals, detect pulses, and maintain a count of the number of pulses observed. Roboteqs can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]].<br />
[[File:roboteq db15 encoder schematic.png|center|frame|Roboteq SDC2160 with Encoders Schematic]]<br />
<br /><br />
<br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
===Roboclaw Motor Controller===<br />
Roboclaw motor controllers are able to connect directly to the encoder quadrature signals and keep track of the number of pulses observed. Roboclaws can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]].<br />
[[File:Roboclaw Encoders Schematic.png|center|frame|Roboclaw 2x15 with Encoders Schematic]]<br />
<br /><br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
<br />
===Encoder Buffer Board===<br />
This board is always an option when the robot's motor controller (such as a Sabertooth) does not support encoder reading. This device uses the LS7366R chip and connects directly to the encoders, maintains a count of the encoder pulses, and provides a SPI interface to read the counts with a microcontroller. We sell this board in 1-, 2-, 3-, and 4-channel variants. The board provides optional pullup resistors for the encoder A and B signals so no additional circuitry is required.<br />
<br />
*<sdr item id=2397>Single LS7366R Encoder Buffer Board (TE-183-001)</sdr item><br />
*<sdr item id=1523>Dual LS7366R Encoder Buffer Board (TE-083-002)</sdr item><br />
*<sdr item id=2398>Triple LS7366R Encoder Buffer Board (TE-183-003)</sdr item><br />
*<sdr item id=2418>Quadruple LS7366R Encoder Buffer Board (TE-183-004)</sdr item><br />
<br />
[[Category:Sensors]]<br />
[[Category:Encoders]]<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=How_to_Add_Encoders_to_a_Robot&diff=1850How to Add Encoders to a Robot2021-04-16T15:49:38Z<p>Brent: /* Reading Encoders */</p>
<hr />
<div>This is a practical guide to adding [[encoders]] to a robot. Encoders are added to a robot's drive motors in order to track wheel speed, distance traveled, and/or implement [[Speed Control#Closed Loop|closed loop speed control]].<br />
<br />
In addition to the encoders themselves, extra components and circuitry are needed to interface with and keep track of the encoder output over time. This guide will cover how to select the correct options to add encoders to a robot kit and go into more detail about the required components.<br />
<br />
==Adding Encoders to a Robot Kit==<br />
If you're purchasing a robot from SuperDroid Robots and want to add encoders to the robot then follow these guidelines when selecting options.<br />
<br />
*[[Motors]]: Make sure to select motors with encoders! Most kits will have options for motors with and without encoders. To have encoders on the robot, you will need to select an option that says "with Encoders".<br /><br />
<br />
[[File:motorOptionExample2.png|center|frame|Example Motor Options on an IG42 Robot Kit]]<br />
<br />
*[[Motor Controller Support|Motor Controllers]]: We offer three types of motor controllers with our robot kits: Roboclaw, Sabertooth, and Roboteq. Both Roboclaw and Roboteq motor controllers are able to connect directly to the encoders, keep track of the number of pulses observed, and perform closed loop speed control on the motors using the encoder information. Sabertooth motor controllers are not able to directly connect with encoders. We address this by instead using an Encoder Buffer Board and a microcontroller together to read encoder pulses. We do not provide a closed loop speed control solution with Sabertooths. <br />If you are using encoders, we highly recommend going with a '''Roboteq''' motor controller as there is a plethora of built-in functionality and failsafe options in the software. We do, however, offer encoder options for each motor controller. <br />[[File:motorControllerOptionExample.png|center|frame|Example Motor Controller Options on an IG42 Robot Kit]]<br />
*Encoder Options: Pick the Encoder Kit that corresponds to your selected Motor Controller. Note that there are three versions of Sabertooth Hookup Kit (<sdr item id=3122>Dual</sdr item>, <sdr item id=3123>Triple</sdr item>, and <sdr item id=3124>Quadruple</sdr item>) because they each come with a different version of the <sdr item id=1523>Encoder Buffer Board</sdr item> based on the number of wheels that need to be monitored. The <sdr item id=3121>Roboclaw</sdr item> and <sdr item id=3120>Roboteq</sdr item> kits are only designed for 2 encoders and will simply come in a set of 2 when three or four wheels will have encoders.<br /><br />
<br />
[[File:encoderKitOptionExample.png|center|frame|Example Encoder Kit Options on an IG42 Robot Kit]]<br />
<br /><br />
<br />
==Encoder Hardware==<br />
Encoders can either come attached to the motor or installed separately as standalone units.<br />
<br />
===Motors with Encoders===<br />
[[File:TD-044-078 ig42 motor encoders.jpg|thumb|230x230px|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Our IG32, IG42, and IG52 gear motors come in variants with and without encoders. In the picture to the right, the encoder is inside the black end cap. There are four wires coming out of the encoder unit that provide access to the encoder power and [[Encoders#Encoder Output|quadrature]] A and B pulse signals.<br />
{| class="wikitable"<br />
|+<br />
!Wire Color<br />
!Function<br />
|-<br />
|Brown<br />
|5V Power Input<br />
|-<br />
|Green<br />
|Ground<br />
|-<br />
|Blue<br />
|Quadrature A<br />
|-<br />
|Purple<br />
|Quadrature B<br />
|}<br />
<br />
<br />
With these encoders, the A and B signals must have 1k pull-up resistors connected between each signal and the encoder 5V power. When we install these on our robots we include these resistors on either a <sdr item id=2760>Roboteq DB15 Breakout Board</sdr item>, <sdr item id=2397>Encoder Buffer Board</sdr item>, or <sdr item id=1512>Encoder Pullup Board</sdr item>, depending on the motor controller used.<br />
===Standalone Encoders===<br />
[[File:us digital h1 encoder.jpg|thumb|230x230px|US Digital H1 Encoder]]<br />
There are standalone encoder units that can be purchased and installed on a robot separately from the motors. These are less convenient since they need to be mechanically mounted and somehow coupled to the motor or drive shaft instead of being part of an all-in-one solution. We don't usually offer these as options but we do use them in situations where the motors do not offer encoder variants (such as on the <sdr item id=2654>HK1000</sdr item>, which uses <sdr item id=2767>wheelchair motors</sdr item>).<br />
<br />
<br />
<br />
<br /><br />
==Reading Encoders==<br />
We have a few preferred methods for tracking and reading encoder values.<br />
===Roboteq Motor Controller===<br />
Roboteq motor controllers include built-in functionality to connect directly with the encoder A and B quadrature signals, detect pulses, and maintain a count of the number of pulses observed. Roboteqs can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]].<br />
[[File:roboteq db15 encoder schematic.png|center|frame|Roboteq SDC2160 with Encoders Schematic]]<br />
<br /><br />
<br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
===Roboclaw Motor Controller===<br />
Roboclaw motor controllers are able to connect directly to the encoder quadrature signals and keep track of the number of pulses observed. Roboclaws can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]].<br />
[[File:Roboclaw Encoders Schematic.png|center|frame|Roboclaw 2x15 with Encoders Schematic]]<br />
<br /><br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
<br />
===Encoder Buffer Board===<br />
This board is always an option when the robot's motor controller (such as a Sabertooth) does not support encoder reading. This device uses the LS7366R chip and connects directly to the encoders, maintains a count of the encoder pulses, and provides a SPI interface to read the counts with a microcontroller. We sell this board in 1-, 2-, 3-, and 4-channel variants. The board provides optional pullup resistors for the encoder A and B signals so no additional circuitry is required.<br />
<br />
* <sdr item id=2397>Single LS7366R Encoder Buffer Board (TE-183-001)</sdr item><br />
* <sdr item id=1523>Dual LS7366R Encoder Buffer Board (TE-083-002)</sdr item><br />
* <sdr item id=2398>Triple LS7366R Encoder Buffer Board (TE-183-003)</sdr item><br />
* <sdr item id=2418>Quadruple LS7366R Encoder Buffer Board (TE-183-004)</sdr item><br />
<br />
[[Category:Sensors]]<br />
[[Category:Encoders]]<br />
<br />
[[Category:How to Build a Robot]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Vectoring_Robot_Support&diff=1849Vectoring Robot Support2021-04-16T15:48:14Z<p>Brent: </p>
<hr />
<div>Vectoring robots are robots that are able to add left/right ''strafing'' to their motion. In other words, vectoring robots can move sideways. Conventional wheeled mobile robots can only move forward and backwards and turn left/right. By adding the left and right strafing components, vectoring robots are able to move in any direction along the ground and turn left/right. This is accomplished by equipping special wheels and using a [[Electronic Control Units|microcontroller]] to calculate the motor speeds required for a commanded motion.<br />
<br />
==How Vectoring Movement is Possible==<br />
Vectoring movement is achieved through a sum of forces generated by each wheel. In Figure 1 below, you will notice that for the robot to move to the right motor A will need to move in the negative direction and motors B and C would move in the positive direction.<br />
<br />
This diagram also shows why motors B and C must be reduced while moving sideways. Motors B and C must have the same power to negate the forward and back movement while motor A must generate the same amount of sideways force as the sum of B and C.<br />
[[File:vectorSupportPage1.jpg|center|thumb]]<br />
<br />
<br />
Figures 2 and 3 show the two distinct types of omni wheels. Both Omni wheels and Mecanum wheels provide traction in normal wheel movement as any other wheel would. however, what makes these wheels special are the small rollers along the wheel's edges. These wheels are designed to provide a minimum amount of friction sideways allowing the wheels to move in any direction.<br />
[[File:vectorSupportPage2.jpg|center|thumb]]<br />
<br />
<br />
Omni wheels have smaller rollers on the edges that move completely perpendicular to the wheel itself. With this type of wheel they must be mounted perpendicular to the center of the robot as seen in Figure 1.<br />
<br />
Mecanum wheels are unique in that the small rollers are at a 45 degree angle. This allows them to be mounted like normal wheels but provide the same style of movement as Omni wheels.<br />
<br />
==4WD Omni-directional Robots==<br />
We have several options for four wheel omni-directional robots. They use mecanum wheels or omni wheels mounted at a 45 degree angle. By changing the speeds and directions of the wheels you can achieve movement in any direction! Due to the style of the wheels it is possible to move the wheels in a standard "tank style" motion to drive normally when needed. These robots also work well for supporting high payloads since the wheels allow them to turn with very low friction. See the load ratings on the robot page for an idea of the payload.{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/Rt2Z3Sxtdn4<br />
|alignment=center<br />
|dimensions=600<br />
}}'''4WD Vectoring Robot Platforms'''<br />
<br />
*<sdr item id=1487> Programmable Mecanum Wheel Vectoring Robot - IG32 DM</sdr item><br />
*<sdr item id=1713> Programmable Mecanum Wheel Vectoring Robot - IG32 SB</sdr item><br />
*<sdr item id=2263> Programmable Mecanum Wheel Vectoring Robot - IG42 SB</sdr item><br />
*<sdr item id=1788> Programmable Mecanum Wheel Vectoring Robot - IG52 DB</sdr item><br />
*<sdr item id=2270> Programmable Quad-Wheel Omni-Directional Vectoring Robot Kit - IG32 SB</sdr item><br />
<br />
==3WD Omni-directional Robots==<br />
Our 3WD omni-directional robots use our double-row omni wheels, allowing them to vector in any direction.<br />
'''3WD Vectoring Robot Platform'''<br />
<br />
*<sdr item id=2229>Programmable Tri-Wheel Vectoring Robot Kit - IG32 Medium Duty SB</sdr item><br />
*<sdr item id=1486>Programmable Triangular Omni Wheel Vectoring Robot - IG32 DM</sdr item><br />
<br />
==Controls and Specifications==<br />
===Motors and Motor Mounts===<br />
We have mecanum wheel robot kits that use IG32, IG42, and IG52 [[motors]]. Below are the motors that we recommend using with these platforms, though you can use different motors if you need more speed or higher payloads. All motors are available in wide range of RPMs and some are available with a built in encoder option. For a detailed list of our available motors please see the link below. The Omni wheel based chassis is available in both IG32 and IG42 variants.<br />
<br />
'''Suggested Motors'''<br />
<br />
*<sdr item id=374> 32mm 190 RPM 24V IG32 Gear Motor (TD-015-190)</sdr item><br />
*<sdr item id=374> 42mm 240 RPM 24V IG42 Gear Motor (TD-016-240)</sdr item><br />
*<sdr item id=872> 52mm 136 RPM 24V IG52 Gear Motor (TD-048-136)</sdr item><br />
*<sdr item id=2109> IG32 or IG42 Motor Mount Tube for Omni Wheel Chassis (TD-056-342)</sdr item><br />
<br />
'''Motor Hookups'''<br />
<br />
*<sdr item id=387> Electric Motor Hookup Kits (TE-024-000)</sdr item><br />
*[[Motor Wiring Support|Electric Motor Wiring Support]]<br />
<br />
Click here for a listing of our available motors.<br />
<br />
===Wheels and Drive Shafts===<br />
Our Mecanum wheels are available stand-alone or paired with compatible wheel hubs. All wheels listed below fit any of the nexus aluminum hubs. The 4" mecanum wheels also fit the SDR manufactured flush mounted hubs.<br />
<br />
*<sdr item id=1352> 4 inch nexus Robot Aluminum Mecanum Wheel - Ball Bearing(TD-090-100)</sdr item><br />
*<sdr item id=2062> 4 inch nexus Robot Aluminum Mecanum Wheel - Sleeve Bearing(TD-169-100)</sdr item><br />
*<sdr item id=2058> 6 inch nexus Robot Aluminum Mecanum Wheel (TD-090-152)</sdr item><br />
*<sdr item id=1351> 8 inch Nexus Robot Aluminum Mecanum Wheel (TD-090-203)</sdr item><br />
*<sdr item id=1488> SDR Flush Mounted Hub with 6mm Bore (TD-107-006)</sdr item><br />
*<sdr item id=1489> SDR Flush Mounted Hub with 8mm Bore (TD-107-008)</sdr item><br />
<br />
Nexus Aluminum Hubs<br />
<br />
*<sdr item id=1359> 6mm Bore - Nexus Aluminum Wheel Hub (TD-094-006)</sdr item><br />
*<sdr item id=1358> 8mm Bore - Nexus Aluminum Wheel Hub (TD-094-008)</sdr item><br />
*<sdr item id=1378> 12mm Bore - Nexus Aluminum Wheel Hub (TD-094-012)</sdr item><br />
*<sdr item id=1379> 0.5" Bore - Nexus Aluminum Wheel Hub (TD-094-050)</sdr item><br />
<br />
The Omni wheels are shafts are sold together as one unit. The shaft comes with a bearing and lock collar that fit into/onto the motors and motor mounts. The wheels are 4 inch in diameter. The traction wheels are made of durable urethane to help grip the floor. The wheels are available in two types; single row and double row. The double row wheels provide smoother operation but both work great.<br />
<br />
*<sdr item id=1734> Nexus Omni-Wheel and Shaft Assembly - 6mm Bore (TD-145-006)</sdr item><br />
*<sdr item id=2291> Nexus Omni-Wheel and Shaft Assembly - 8mm Bore (TD-145-008)</sdr item><br />
<br />
===Mecanum Wheels===<br />
Below is a diagram showing how the mecanum wheels should be mounted and which direction to turn the wheels for vectoring movements.<br />
[[File:mecanum drive wheels vectoring robot tn.jpg|center|thumb|400x400px]]<br />
<br /><br />
<br />
===Motor and Speed Controllers===<br />
[[File:Roboclaw 2x15 Motor Controller.jpg|thumb|250x250px|<sdr item id=2627>RoboClaw 2x15 Motor Controller</sdr item>]]<br />
We offer a variety of [[Motor Controller Support|motor controllers]] to allow for simple operation of the robot. The motor controllers are independent of the chassis type (Mecanum or Omni). To provide vectoring movement it is required to have one motor channel per motor. Higher amperage motor controllers will be needed as the motor size and payload of the robot increases.<br />
<br />
For the best vectoring performance, use motors with [[Encoder Support|encoders]] and a motor controller that has [[Speed Control#Closed Loop|closed loop speed control]], such as a Roboteq or Roboclaw. To vector cleanly in a desired direction, the robot's wheels must rotate at precise speed ratios relative to one another. If the ratios are off, then the movement will be sloppy -- e.g. instead of strafing purely to the right the robot might also drift slightly forward and turn slightly left during the movement. Closed loop speed control mitigates this effect so the robot moves as commanded.<br />
<br />
Dimension Engineering's motor controllers are versatile and reliable options when no closed loop speed control is needed.<br />
<br />
'''Recommended Motor Controllers'''<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1826>RoboteQ SDC2160 2x20A (TE-144-060)</sdr item><br />
*<sdr item id=847>SyRen 10 (TE-098-110)</sdr item><br />
*<sdr item id=822>Sabertooth Dual 25A (TE-091-225)</sdr item><br />
*<sdr item id=1822>Sabertooth Dual 32A (TE-091-232)</sdr item><br />
<br />
===Controller and Controller Interface===<br />
We offer three main [[Control System|control options]] for vectoring robots: Radio Controlled, WiFi, and wireless serial (xBee).<br />
<br />
'''R/C (Radio Control)'''<br />
<br />
For [[Control System#Analog|R/C control]] of the robot, although the motor controllers listed above support RC you will still need a [[Electronic Control Units|microcontroller]] on the robot in order to handle the motor mixing necessary to achieve vectoring motion.<br />
<br />
For accurate robot control, the remote will require at least a two axis joystick/control and a signal switch to change driving modes if desired. Below is a recommended listing of our R/C remotes.<br />
<br />
*<sdr item id=2617> FLYSKY FS-i6 2.4G 6CH Transmitter & Receiver (TE-328-000)</sdr item><br />
*<sdr item id=2672> Spektrum DSMX DX6e Transmitter with AR620 Receiver (TE-336-DX6)</sdr item><br />
*<sdr item id=1135> Spektrum DSMX DX8 8-Channel Transmitter Gen 2 with AR8010T Receiver (TE-113-008)</sdr item><br />
<br />
'''WiFi Control'''<br />
<br />
We offer an Arduino-based <sdr item id=1440>Wifi control interface package (TE-900-003)</sdr item> that includes an <sdr item id=1292>Arduino Mega</sdr item>, <sdr item id=1419>SDR Breakout shield</sdr item>, Raspberry Pi, voltage regulators, and a <sdr item id=1913>4 channel TTL Relay Board (TE-010-405)</sdr item>. The control package also comes with the source code for the control software and the Arduino firmware needed for operation of the robot.<br />
<br />
Please see our [[Wi-Fi Robots|WiFi Control Interface Support Page]] for more information.<br />
<br />
'''Wireless Serial Control'''<br />
<br />
Wireless serial control is achieved through an xBee radio. Wireless serial is currently only available if you choose an Arduino-based control system. The xBee radio connects to the Arduino through the Arduino Wireless SD Shield (MCU-064-000). A Wireless Serial Control system is available by request. Please contact us for more information.<br />
<br />
Please see our [[XBee Wireless Serial Module|Wireless Serial Support Page]] for more information.<br />
<br />
===Hardware===<br />
The final item you need to make your kit complete is a hardware package. It includes nuts, bolts, washers, cable ties, and cable hold downs.<br />
<br />
*<sdr item id=401> Hardware Package (mounts most components to the base robot) (TD-021-000)</sdr item><br />
*<sdr item id=399> Servo Standoff Mounting Hardware (TD-024-000)</sdr item><br />
<br />
===Sensors===<br />
In order to make your robot [[:Category:Autonomous|autonomous]], you will need to add [[:Category:Sensors|sensors]]. Sensors can always be added or removed at a later date but always be mindful of how the sensors interact with your microcontroller. Some sensors operate under I2C, some SPI and some analog. See our [[:Category:Sensors|Sensor Support Page]] for more information.<br />
<br />
*Accelerometers, Gyros, GPS, and Compasses<br />
*Contact Sensors<br />
*Current Sensors<br />
*Force Sensors<br />
*Gas Sensors<br />
*Optical Sensors<br />
*Sonar Range Finders<br />
*Temperature and Humidity Sensors<br />
<br />
[[Category:Vectoring Robots]]<br />
[[Category:Mechanical Engineering]]<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Vectoring_Robot_Support&diff=1848Vectoring Robot Support2021-04-16T15:47:36Z<p>Brent: </p>
<hr />
<div>Vectoring robots are robots that are able to add left/right ''strafing'' to their motion. Conventional wheeled mobile robots can only move forward and backwards and turn left/right. By adding the left and right strafing components, vectoring robots are able to move in any direction along the ground and turn left/right. This is accomplished by equipping special wheels and using a [[Electronic Control Units|microcontroller]] to calculate the motor speeds required for a commanded motion.<br />
<br />
==How Vectoring Movement is Possible==<br />
Vectoring movement is achieved through a sum of forces generated by each wheel. In Figure 1 below, you will notice that for the robot to move to the right motor A will need to move in the negative direction and motors B and C would move in the positive direction.<br />
<br />
This diagram also shows why motors B and C must be reduced while moving sideways. Motors B and C must have the same power to negate the forward and back movement while motor A must generate the same amount of sideways force as the sum of B and C.<br />
[[File:vectorSupportPage1.jpg|center|thumb]]<br />
<br />
<br />
Figures 2 and 3 show the two distinct types of omni wheels. Both Omni wheels and Mecanum wheels provide traction in normal wheel movement as any other wheel would. however, what makes these wheels special are the small rollers along the wheel's edges. These wheels are designed to provide a minimum amount of friction sideways allowing the wheels to move in any direction.<br />
[[File:vectorSupportPage2.jpg|center|thumb]]<br />
<br />
<br />
Omni wheels have smaller rollers on the edges that move completely perpendicular to the wheel itself. With this type of wheel they must be mounted perpendicular to the center of the robot as seen in Figure 1.<br />
<br />
Mecanum wheels are unique in that the small rollers are at a 45 degree angle. This allows them to be mounted like normal wheels but provide the same style of movement as Omni wheels.<br />
<br />
==4WD Omni-directional Robots==<br />
We have several options for four wheel omni-directional robots. They use mecanum wheels or omni wheels mounted at a 45 degree angle. By changing the speeds and directions of the wheels you can achieve movement in any direction! Due to the style of the wheels it is possible to move the wheels in a standard "tank style" motion to drive normally when needed. These robots also work well for supporting high payloads since the wheels allow them to turn with very low friction. See the load ratings on the robot page for an idea of the payload.{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/Rt2Z3Sxtdn4<br />
|alignment=center<br />
|dimensions=600<br />
}}'''4WD Vectoring Robot Platforms'''<br />
<br />
*<sdr item id=1487> Programmable Mecanum Wheel Vectoring Robot - IG32 DM</sdr item><br />
*<sdr item id=1713> Programmable Mecanum Wheel Vectoring Robot - IG32 SB</sdr item><br />
*<sdr item id=2263> Programmable Mecanum Wheel Vectoring Robot - IG42 SB</sdr item><br />
*<sdr item id=1788> Programmable Mecanum Wheel Vectoring Robot - IG52 DB</sdr item><br />
*<sdr item id=2270> Programmable Quad-Wheel Omni-Directional Vectoring Robot Kit - IG32 SB</sdr item><br />
<br />
==3WD Omni-directional Robots==<br />
Our 3WD omni-directional robots use our double-row omni wheels, allowing them to vector in any direction.<br />
'''3WD Vectoring Robot Platform'''<br />
<br />
*<sdr item id=2229>Programmable Tri-Wheel Vectoring Robot Kit - IG32 Medium Duty SB</sdr item><br />
*<sdr item id=1486>Programmable Triangular Omni Wheel Vectoring Robot - IG32 DM</sdr item><br />
<br />
==Controls and Specifications==<br />
===Motors and Motor Mounts===<br />
We have mecanum wheel robot kits that use IG32, IG42, and IG52 [[motors]]. Below are the motors that we recommend using with these platforms, though you can use different motors if you need more speed or higher payloads. All motors are available in wide range of RPMs and some are available with a built in encoder option. For a detailed list of our available motors please see the link below. The Omni wheel based chassis is available in both IG32 and IG42 variants.<br />
<br />
'''Suggested Motors'''<br />
<br />
*<sdr item id=374> 32mm 190 RPM 24V IG32 Gear Motor (TD-015-190)</sdr item><br />
*<sdr item id=374> 42mm 240 RPM 24V IG42 Gear Motor (TD-016-240)</sdr item><br />
*<sdr item id=872> 52mm 136 RPM 24V IG52 Gear Motor (TD-048-136)</sdr item><br />
*<sdr item id=2109> IG32 or IG42 Motor Mount Tube for Omni Wheel Chassis (TD-056-342)</sdr item><br />
<br />
'''Motor Hookups'''<br />
<br />
*<sdr item id=387> Electric Motor Hookup Kits (TE-024-000)</sdr item><br />
*[[Motor Wiring Support|Electric Motor Wiring Support]]<br />
<br />
Click here for a listing of our available motors.<br />
<br />
===Wheels and Drive Shafts===<br />
Our Mecanum wheels are available stand-alone or paired with compatible wheel hubs. All wheels listed below fit any of the nexus aluminum hubs. The 4" mecanum wheels also fit the SDR manufactured flush mounted hubs.<br />
<br />
*<sdr item id=1352> 4 inch nexus Robot Aluminum Mecanum Wheel - Ball Bearing(TD-090-100)</sdr item><br />
*<sdr item id=2062> 4 inch nexus Robot Aluminum Mecanum Wheel - Sleeve Bearing(TD-169-100)</sdr item><br />
*<sdr item id=2058> 6 inch nexus Robot Aluminum Mecanum Wheel (TD-090-152)</sdr item><br />
*<sdr item id=1351> 8 inch Nexus Robot Aluminum Mecanum Wheel (TD-090-203)</sdr item><br />
*<sdr item id=1488> SDR Flush Mounted Hub with 6mm Bore (TD-107-006)</sdr item><br />
*<sdr item id=1489> SDR Flush Mounted Hub with 8mm Bore (TD-107-008)</sdr item><br />
<br />
Nexus Aluminum Hubs<br />
<br />
*<sdr item id=1359> 6mm Bore - Nexus Aluminum Wheel Hub (TD-094-006)</sdr item><br />
*<sdr item id=1358> 8mm Bore - Nexus Aluminum Wheel Hub (TD-094-008)</sdr item><br />
*<sdr item id=1378> 12mm Bore - Nexus Aluminum Wheel Hub (TD-094-012)</sdr item><br />
*<sdr item id=1379> 0.5" Bore - Nexus Aluminum Wheel Hub (TD-094-050)</sdr item><br />
<br />
The Omni wheels are shafts are sold together as one unit. The shaft comes with a bearing and lock collar that fit into/onto the motors and motor mounts. The wheels are 4 inch in diameter. The traction wheels are made of durable urethane to help grip the floor. The wheels are available in two types; single row and double row. The double row wheels provide smoother operation but both work great.<br />
<br />
*<sdr item id=1734> Nexus Omni-Wheel and Shaft Assembly - 6mm Bore (TD-145-006)</sdr item><br />
*<sdr item id=2291> Nexus Omni-Wheel and Shaft Assembly - 8mm Bore (TD-145-008)</sdr item><br />
<br />
===Mecanum Wheels===<br />
Below is a diagram showing how the mecanum wheels should be mounted and which direction to turn the wheels for vectoring movements.<br />
[[File:mecanum drive wheels vectoring robot tn.jpg|center|thumb|400x400px]]<br />
<br /><br />
<br />
===Motor and Speed Controllers===<br />
[[File:Roboclaw 2x15 Motor Controller.jpg|thumb|250x250px|<sdr item id=2627>RoboClaw 2x15 Motor Controller</sdr item>]]<br />
We offer a variety of [[Motor Controller Support|motor controllers]] to allow for simple operation of the robot. The motor controllers are independent of the chassis type (Mecanum or Omni). To provide vectoring movement it is required to have one motor channel per motor. Higher amperage motor controllers will be needed as the motor size and payload of the robot increases.<br />
<br />
For the best vectoring performance, use motors with [[Encoder Support|encoders]] and a motor controller that has [[Speed Control#Closed Loop|closed loop speed control]], such as a Roboteq or Roboclaw. To vector cleanly in a desired direction, the robot's wheels must rotate at precise speed ratios relative to one another. If the ratios are off, then the movement will be sloppy -- e.g. instead of strafing purely to the right the robot might also drift slightly forward and turn slightly left during the movement. Closed loop speed control mitigates this effect so the robot moves as commanded.<br />
<br />
Dimension Engineering's motor controllers are versatile and reliable options when no closed loop speed control is needed.<br />
<br />
'''Recommended Motor Controllers'''<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1826>RoboteQ SDC2160 2x20A (TE-144-060)</sdr item><br />
*<sdr item id=847>SyRen 10 (TE-098-110)</sdr item><br />
*<sdr item id=822>Sabertooth Dual 25A (TE-091-225)</sdr item><br />
*<sdr item id=1822>Sabertooth Dual 32A (TE-091-232)</sdr item><br />
<br />
===Controller and Controller Interface===<br />
We offer three main [[Control System|control options]] for vectoring robots: Radio Controlled, WiFi, and wireless serial (xBee).<br />
<br />
'''R/C (Radio Control)'''<br />
<br />
For [[Control System#Analog|R/C control]] of the robot, although the motor controllers listed above support RC you will still need a [[Electronic Control Units|microcontroller]] on the robot in order to handle the motor mixing necessary to achieve vectoring motion.<br />
<br />
For accurate robot control, the remote will require at least a two axis joystick/control and a signal switch to change driving modes if desired. Below is a recommended listing of our R/C remotes.<br />
<br />
*<sdr item id=2617> FLYSKY FS-i6 2.4G 6CH Transmitter & Receiver (TE-328-000)</sdr item><br />
*<sdr item id=2672> Spektrum DSMX DX6e Transmitter with AR620 Receiver (TE-336-DX6)</sdr item><br />
*<sdr item id=1135> Spektrum DSMX DX8 8-Channel Transmitter Gen 2 with AR8010T Receiver (TE-113-008)</sdr item><br />
<br />
'''WiFi Control'''<br />
<br />
We offer an Arduino-based <sdr item id=1440>Wifi control interface package (TE-900-003)</sdr item> that includes an <sdr item id=1292>Arduino Mega</sdr item>, <sdr item id=1419>SDR Breakout shield</sdr item>, Raspberry Pi, voltage regulators, and a <sdr item id=1913>4 channel TTL Relay Board (TE-010-405)</sdr item>. The control package also comes with the source code for the control software and the Arduino firmware needed for operation of the robot.<br />
<br />
Please see our [[Wi-Fi Robots|WiFi Control Interface Support Page]] for more information.<br />
<br />
'''Wireless Serial Control'''<br />
<br />
Wireless serial control is achieved through an xBee radio. Wireless serial is currently only available if you choose an Arduino-based control system. The xBee radio connects to the Arduino through the Arduino Wireless SD Shield (MCU-064-000). A Wireless Serial Control system is available by request. Please contact us for more information.<br />
<br />
Please see our [[XBee Wireless Serial Module|Wireless Serial Support Page]] for more information.<br />
<br />
===Hardware===<br />
The final item you need to make your kit complete is a hardware package. It includes nuts, bolts, washers, cable ties, and cable hold downs.<br />
<br />
*<sdr item id=401> Hardware Package (mounts most components to the base robot) (TD-021-000)</sdr item><br />
*<sdr item id=399> Servo Standoff Mounting Hardware (TD-024-000)</sdr item><br />
<br />
===Sensors===<br />
In order to make your robot [[:Category:Autonomous|autonomous]], you will need to add [[:Category:Sensors|sensors]]. Sensors can always be added or removed at a later date but always be mindful of how the sensors interact with your microcontroller. Some sensors operate under I2C, some SPI and some analog. See our [[:Category:Sensors|Sensor Support Page]] for more information.<br />
<br />
*Accelerometers, Gyros, GPS, and Compasses<br />
*Contact Sensors<br />
*Current Sensors<br />
*Force Sensors<br />
*Gas Sensors<br />
*Optical Sensors<br />
*Sonar Range Finders<br />
*Temperature and Humidity Sensors<br />
<br />
[[Category:Vectoring Robots]]<br />
[[Category:Mechanical Engineering]]<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Vectoring_Robot_Support&diff=1847Vectoring Robot Support2021-04-16T15:45:07Z<p>Brent: </p>
<hr />
<div>Vectoring robots are robots that are able to add left/right ''strafing'' to their motion. Conventional wheeled mobile robots can only move forward and backwards and make left/right turning motions. By adding the left and right strafing components, vectoring robots are able to move in any direction along the ground in addition to (or even while) turning left and right. This is accomplished by using special wheels and using a [[Electronic Control Units|microcontroller]] to calculate the motor speeds required for a commanded motion.<br />
<br />
==How Vectoring Movement is Possible==<br />
Vectoring movement is achieved through a sum of forces generated by each wheel. In Figure 1 below, you will notice that for the robot to move to the right motor A will need to move in the negative direction and motors B and C would move in the positive direction.<br />
<br />
This diagram also shows why motors B and C must be reduced while moving sideways. Motors B and C must have the same power to negate the forward and back movement while motor A must generate the same amount of sideways force as the sum of B and C.<br />
[[File:vectorSupportPage1.jpg|center|thumb]]<br />
<br />
<br />
Figures 2 and 3 show the two distinct types of omni wheels. Both Omni wheels and Mecanum wheels provide traction in normal wheel movement as any other wheel would. however, what makes these wheels special are the small rollers along the wheel's edges. These wheels are designed to provide a minimum amount of friction sideways allowing the wheels to move in any direction.<br />
[[File:vectorSupportPage2.jpg|center|thumb]]<br />
<br />
<br />
Omni wheels have smaller rollers on the edges that move completely perpendicular to the wheel itself. With this type of wheel they must be mounted perpendicular to the center of the robot as seen in Figure 1.<br />
<br />
Mecanum wheels are unique in that the small rollers are at a 45 degree angle. This allows them to be mounted like normal wheels but provide the same style of movement as Omni wheels.<br />
<br />
==4WD Omni-directional Robots==<br />
We have several options for four wheel omni-directional robots. They use mecanum wheels or omni wheels mounted at a 45 degree angle. By changing the speeds and directions of the wheels you can achieve movement in any direction! Due to the style of the wheels it is possible to move the wheels in a standard "tank style" motion to drive normally when needed. These robots also work well for supporting high payloads since the wheels allow them to turn with very low friction. See the load ratings on the robot page for an idea of the payload.{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/Rt2Z3Sxtdn4<br />
|alignment=center<br />
|dimensions=600<br />
}}'''4WD Vectoring Robot Platforms'''<br />
<br />
*<sdr item id=1487> Programmable Mecanum Wheel Vectoring Robot - IG32 DM</sdr item><br />
*<sdr item id=1713> Programmable Mecanum Wheel Vectoring Robot - IG32 SB</sdr item><br />
*<sdr item id=2263> Programmable Mecanum Wheel Vectoring Robot - IG42 SB</sdr item><br />
*<sdr item id=1788> Programmable Mecanum Wheel Vectoring Robot - IG52 DB</sdr item><br />
*<sdr item id=2270> Programmable Quad-Wheel Omni-Directional Vectoring Robot Kit - IG32 SB</sdr item><br />
<br />
==3WD Omni-directional Robots==<br />
Our 3WD omni-directional robots use our double-row omni wheels, allowing them to vector in any direction.<br />
'''3WD Vectoring Robot Platform'''<br />
<br />
*<sdr item id=2229>Programmable Tri-Wheel Vectoring Robot Kit - IG32 Medium Duty SB</sdr item><br />
*<sdr item id=1486>Programmable Triangular Omni Wheel Vectoring Robot - IG32 DM</sdr item><br />
<br />
==Controls and Specifications==<br />
===Motors and Motor Mounts===<br />
We have mecanum wheel robot kits that use IG32, IG42, and IG52 [[motors]]. Below are the motors that we recommend using with these platforms, though you can use different motors if you need more speed or higher payloads. All motors are available in wide range of RPMs and some are available with a built in encoder option. For a detailed list of our available motors please see the link below. The Omni wheel based chassis is available in both IG32 and IG42 variants.<br />
<br />
'''Suggested Motors'''<br />
<br />
*<sdr item id=374> 32mm 190 RPM 24V IG32 Gear Motor (TD-015-190)</sdr item><br />
*<sdr item id=374> 42mm 240 RPM 24V IG42 Gear Motor (TD-016-240)</sdr item><br />
*<sdr item id=872> 52mm 136 RPM 24V IG52 Gear Motor (TD-048-136)</sdr item><br />
*<sdr item id=2109> IG32 or IG42 Motor Mount Tube for Omni Wheel Chassis (TD-056-342)</sdr item><br />
<br />
'''Motor Hookups'''<br />
<br />
*<sdr item id=387> Electric Motor Hookup Kits (TE-024-000)</sdr item><br />
*[[Motor Wiring Support|Electric Motor Wiring Support]]<br />
<br />
Click here for a listing of our available motors.<br />
<br />
===Wheels and Drive Shafts===<br />
Our Mecanum wheels are available stand-alone or paired with compatible wheel hubs. All wheels listed below fit any of the nexus aluminum hubs. The 4" mecanum wheels also fit the SDR manufactured flush mounted hubs.<br />
<br />
*<sdr item id=1352> 4 inch nexus Robot Aluminum Mecanum Wheel - Ball Bearing(TD-090-100)</sdr item><br />
*<sdr item id=2062> 4 inch nexus Robot Aluminum Mecanum Wheel - Sleeve Bearing(TD-169-100)</sdr item><br />
*<sdr item id=2058> 6 inch nexus Robot Aluminum Mecanum Wheel (TD-090-152)</sdr item><br />
*<sdr item id=1351> 8 inch Nexus Robot Aluminum Mecanum Wheel (TD-090-203)</sdr item><br />
*<sdr item id=1488> SDR Flush Mounted Hub with 6mm Bore (TD-107-006)</sdr item><br />
*<sdr item id=1489> SDR Flush Mounted Hub with 8mm Bore (TD-107-008)</sdr item><br />
<br />
Nexus Aluminum Hubs<br />
<br />
*<sdr item id=1359> 6mm Bore - Nexus Aluminum Wheel Hub (TD-094-006)</sdr item><br />
*<sdr item id=1358> 8mm Bore - Nexus Aluminum Wheel Hub (TD-094-008)</sdr item><br />
*<sdr item id=1378> 12mm Bore - Nexus Aluminum Wheel Hub (TD-094-012)</sdr item><br />
*<sdr item id=1379> 0.5" Bore - Nexus Aluminum Wheel Hub (TD-094-050)</sdr item><br />
<br />
The Omni wheels are shafts are sold together as one unit. The shaft comes with a bearing and lock collar that fit into/onto the motors and motor mounts. The wheels are 4 inch in diameter. The traction wheels are made of durable urethane to help grip the floor. The wheels are available in two types; single row and double row. The double row wheels provide smoother operation but both work great.<br />
<br />
*<sdr item id=1734> Nexus Omni-Wheel and Shaft Assembly - 6mm Bore (TD-145-006)</sdr item><br />
*<sdr item id=2291> Nexus Omni-Wheel and Shaft Assembly - 8mm Bore (TD-145-008)</sdr item><br />
<br />
===Mecanum Wheels===<br />
Below is a diagram showing how the mecanum wheels should be mounted and which direction to turn the wheels for vectoring movements.<br />
[[File:mecanum drive wheels vectoring robot tn.jpg|center|thumb|400x400px]]<br />
<br /><br />
<br />
===Motor and Speed Controllers===<br />
[[File:Roboclaw 2x15 Motor Controller.jpg|thumb|250x250px|<sdr item id=2627>RoboClaw 2x15 Motor Controller</sdr item>]]<br />
We offer a variety of [[Motor Controller Support|motor controllers]] to allow for simple operation of the robot. The motor controllers are independent of the chassis type (Mecanum or Omni). To provide vectoring movement it is required to have one motor channel per motor. Higher amperage motor controllers will be needed as the motor size and payload of the robot increases.<br />
<br />
For the best vectoring performance, use motors with [[Encoder Support|encoders]] and a motor controller that has [[Speed Control#Closed Loop|closed loop speed control]], such as a Roboteq or Roboclaw. To vector cleanly in a desired direction, the robot's wheels must rotate at precise speed ratios relative to one another. If the ratios are off, then the movement will be sloppy -- e.g. instead of strafing purely to the right the robot might also drift slightly forward and turn slightly left during the movement. Closed loop speed control mitigates this effect so the robot moves as commanded.<br />
<br />
Dimension Engineering's motor controllers are versatile and reliable options when no closed loop speed control is needed.<br />
<br />
'''Recommended Motor Controllers'''<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1826>RoboteQ SDC2160 2x20A (TE-144-060)</sdr item><br />
*<sdr item id=847>SyRen 10 (TE-098-110)</sdr item><br />
*<sdr item id=822>Sabertooth Dual 25A (TE-091-225)</sdr item><br />
*<sdr item id=1822>Sabertooth Dual 32A (TE-091-232)</sdr item><br />
<br />
===Controller and Controller Interface===<br />
We offer three main [[Control System|control options]] for vectoring robots: Radio Controlled, WiFi, and wireless serial (xBee).<br />
<br />
'''R/C (Radio Control)'''<br />
<br />
For [[Control System#Analog|R/C control]] of the robot, although the motor controllers listed above support RC you will still need a [[Electronic Control Units|microcontroller]] on the robot in order to handle the motor mixing necessary to achieve vectoring motion.<br />
<br />
For accurate robot control, the remote will require at least a two axis joystick/control and a signal switch to change driving modes if desired. Below is a recommended listing of our R/C remotes.<br />
<br />
*<sdr item id=2617> FLYSKY FS-i6 2.4G 6CH Transmitter & Receiver (TE-328-000)</sdr item><br />
*<sdr item id=2672> Spektrum DSMX DX6e Transmitter with AR620 Receiver (TE-336-DX6)</sdr item><br />
*<sdr item id=1135> Spektrum DSMX DX8 8-Channel Transmitter Gen 2 with AR8010T Receiver (TE-113-008)</sdr item><br />
<br />
'''WiFi Control'''<br />
<br />
We offer an Arduino-based <sdr item id=1440>Wifi control interface package (TE-900-003)</sdr item> that includes an <sdr item id=1292>Arduino Mega</sdr item>, <sdr item id=1419>SDR Breakout shield</sdr item>, Raspberry Pi, voltage regulators, and a <sdr item id=1913>4 channel TTL Relay Board (TE-010-405)</sdr item>. The control package also comes with the source code for the control software and the Arduino firmware needed for operation of the robot.<br />
<br />
Please see our [[Wi-Fi Robots|WiFi Control Interface Support Page]] for more information.<br />
<br />
'''Wireless Serial Control'''<br />
<br />
Wireless serial control is achieved through an xBee radio. Wireless serial is currently only available if you choose an Arduino-based control system. The xBee radio connects to the Arduino through the Arduino Wireless SD Shield (MCU-064-000). A Wireless Serial Control system is available by request. Please contact us for more information.<br />
<br />
Please see our [[XBee Wireless Serial Module|Wireless Serial Support Page]] for more information.<br />
<br />
===Hardware===<br />
The final item you need to make your kit complete is a hardware package. It includes nuts, bolts, washers, cable ties, and cable hold downs.<br />
<br />
*<sdr item id=401> Hardware Package (mounts most components to the base robot) (TD-021-000)</sdr item><br />
*<sdr item id=399> Servo Standoff Mounting Hardware (TD-024-000)</sdr item><br />
<br />
===Sensors===<br />
In order to make your robot [[:Category:Autonomous|autonomous]], you will need to add [[:Category:Sensors|sensors]]. Sensors can always be added or removed at a later date but always be mindful of how the sensors interact with your microcontroller. Some sensors operate under I2C, some SPI and some analog. See our [[:Category:Sensors|Sensor Support Page]] for more information.<br />
<br />
*Accelerometers, Gyros, GPS, and Compasses<br />
*Contact Sensors<br />
*Current Sensors<br />
*Force Sensors<br />
*Gas Sensors<br />
*Optical Sensors<br />
*Sonar Range Finders<br />
*Temperature and Humidity Sensors<br />
<br />
[[Category:Vectoring Robots]]<br />
[[Category:Mechanical Engineering]]<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Vectoring_Robot_Support&diff=1846Vectoring Robot Support2021-04-16T15:42:32Z<p>Brent: </p>
<hr />
<div>Vectoring robots are robots that are able to add left/right ''strafing'' to their motion. Conventional wheeled mobile robots can only move forward and backwards and make left/right turning motions. By adding the left and right strafing components, vectoring robots are able to move in any direction along the ground in addition to (or even while) turning left and right.<br />
<br />
==How Vectoring Movement is Possible==<br />
Vectoring movement is achieved through a sum of forces generated by each wheel. In Figure 1 below, you will notice that for the robot to move to the right motor A will need to move in the negative direction and motors B and C would move in the positive direction.<br />
<br />
This diagram also shows why motors B and C must be reduced while moving sideways. Motors B and C must have the same power to negate the forward and back movement while motor A must generate the same amount of sideways force as the sum of B and C.<br />
[[File:vectorSupportPage1.jpg|center|thumb]]<br />
<br />
<br />
Figures 2 and 3 show the two distinct types of omni wheels. Both Omni wheels and Mecanum wheels provide traction in normal wheel movement as any other wheel would. however, what makes these wheels special are the small rollers along the wheel's edges. These wheels are designed to provide a minimum amount of friction sideways allowing the wheels to move in any direction.<br />
[[File:vectorSupportPage2.jpg|center|thumb]]<br />
<br />
<br />
Omni wheels have smaller rollers on the edges that move completely perpendicular to the wheel itself. With this type of wheel they must be mounted perpendicular to the center of the robot as seen in Figure 1.<br />
<br />
Mecanum wheels are unique in that the small rollers are at a 45 degree angle. This allows them to be mounted like normal wheels but provide the same style of movement as Omni wheels.<br />
<br />
==4WD Omni-directional Robots==<br />
We have several options for four wheel omni-directional robots. They use mecanum wheels or omni wheels mounted at a 45 degree angle. By changing the speeds and directions of the wheels you can achieve movement in any direction! Due to the style of the wheels it is possible to move the wheels in a standard "tank style" motion to drive normally when needed. These robots also work well for supporting high payloads since the wheels allow them to turn with very low friction. See the load ratings on the robot page for an idea of the payload.{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/Rt2Z3Sxtdn4<br />
|alignment=center<br />
|dimensions=600<br />
}}'''4WD Vectoring Robot Platforms'''<br />
<br />
*<sdr item id=1487> Programmable Mecanum Wheel Vectoring Robot - IG32 DM</sdr item><br />
*<sdr item id=1713> Programmable Mecanum Wheel Vectoring Robot - IG32 SB</sdr item><br />
*<sdr item id=2263> Programmable Mecanum Wheel Vectoring Robot - IG42 SB</sdr item><br />
*<sdr item id=1788> Programmable Mecanum Wheel Vectoring Robot - IG52 DB</sdr item><br />
*<sdr item id=2270> Programmable Quad-Wheel Omni-Directional Vectoring Robot Kit - IG32 SB</sdr item><br />
<br />
==3WD Omni-directional Robots==<br />
Our 3WD omni-directional robots use our double-row omni wheels, allowing them to vector in any direction.<br />
'''3WD Vectoring Robot Platform'''<br />
<br />
*<sdr item id=2229>Programmable Tri-Wheel Vectoring Robot Kit - IG32 Medium Duty SB</sdr item><br />
*<sdr item id=1486>Programmable Triangular Omni Wheel Vectoring Robot - IG32 DM</sdr item><br />
<br />
==Controls and Specifications==<br />
===Motors and Motor Mounts===<br />
We have mecanum wheel robot kits that use IG32, IG42, and IG52 [[motors]]. Below are the motors that we recommend using with these platforms, though you can use different motors if you need more speed or higher payloads. All motors are available in wide range of RPMs and some are available with a built in encoder option. For a detailed list of our available motors please see the link below. The Omni wheel based chassis is available in both IG32 and IG42 variants.<br />
<br />
'''Suggested Motors'''<br />
<br />
*<sdr item id=374> 32mm 190 RPM 24V IG32 Gear Motor (TD-015-190)</sdr item><br />
*<sdr item id=374> 42mm 240 RPM 24V IG42 Gear Motor (TD-016-240)</sdr item><br />
*<sdr item id=872> 52mm 136 RPM 24V IG52 Gear Motor (TD-048-136)</sdr item><br />
*<sdr item id=2109> IG32 or IG42 Motor Mount Tube for Omni Wheel Chassis (TD-056-342)</sdr item><br />
<br />
'''Motor Hookups'''<br />
<br />
*<sdr item id=387> Electric Motor Hookup Kits (TE-024-000)</sdr item><br />
*[[Motor Wiring Support|Electric Motor Wiring Support]]<br />
<br />
Click here for a listing of our available motors.<br />
<br />
===Wheels and Drive Shafts===<br />
Our Mecanum wheels are available stand-alone or paired with compatible wheel hubs. All wheels listed below fit any of the nexus aluminum hubs. The 4" mecanum wheels also fit the SDR manufactured flush mounted hubs.<br />
<br />
*<sdr item id=1352> 4 inch nexus Robot Aluminum Mecanum Wheel - Ball Bearing(TD-090-100)</sdr item><br />
*<sdr item id=2062> 4 inch nexus Robot Aluminum Mecanum Wheel - Sleeve Bearing(TD-169-100)</sdr item><br />
*<sdr item id=2058> 6 inch nexus Robot Aluminum Mecanum Wheel (TD-090-152)</sdr item><br />
*<sdr item id=1351> 8 inch Nexus Robot Aluminum Mecanum Wheel (TD-090-203)</sdr item><br />
*<sdr item id=1488> SDR Flush Mounted Hub with 6mm Bore (TD-107-006)</sdr item><br />
*<sdr item id=1489> SDR Flush Mounted Hub with 8mm Bore (TD-107-008)</sdr item><br />
<br />
Nexus Aluminum Hubs<br />
<br />
*<sdr item id=1359> 6mm Bore - Nexus Aluminum Wheel Hub (TD-094-006)</sdr item><br />
*<sdr item id=1358> 8mm Bore - Nexus Aluminum Wheel Hub (TD-094-008)</sdr item><br />
*<sdr item id=1378> 12mm Bore - Nexus Aluminum Wheel Hub (TD-094-012)</sdr item><br />
*<sdr item id=1379> 0.5" Bore - Nexus Aluminum Wheel Hub (TD-094-050)</sdr item><br />
<br />
The Omni wheels are shafts are sold together as one unit. The shaft comes with a bearing and lock collar that fit into/onto the motors and motor mounts. The wheels are 4 inch in diameter. The traction wheels are made of durable urethane to help grip the floor. The wheels are available in two types; single row and double row. The double row wheels provide smoother operation but both work great.<br />
<br />
*<sdr item id=1734> Nexus Omni-Wheel and Shaft Assembly - 6mm Bore (TD-145-006)</sdr item><br />
*<sdr item id=2291> Nexus Omni-Wheel and Shaft Assembly - 8mm Bore (TD-145-008)</sdr item><br />
<br />
===Mecanum Wheels===<br />
Below is a diagram showing how the mecanum wheels should be mounted and which direction to turn the wheels for vectoring movements.<br />
[[File:mecanum drive wheels vectoring robot tn.jpg|center|thumb|400x400px]]<br />
<br /><br />
<br />
===Motor and Speed Controllers===<br />
[[File:Roboclaw 2x15 Motor Controller.jpg|thumb|250x250px|<sdr item id=2627>RoboClaw 2x15 Motor Controller</sdr item>]]<br />
We offer a variety of [[Motor Controller Support|motor controllers]] to allow for simple operation of the robot. The motor controllers are independent of the chassis type (Mecanum or Omni). To provide vectoring movement it is required to have one motor channel per motor. Higher amperage motor controllers will be needed as the motor size and payload of the robot increases.<br />
<br />
For the best vectoring performance, use motors with [[Encoder Support|encoders]] and a motor controller that has [[Speed Control#Closed Loop|closed loop speed control]], such as a Roboteq or Roboclaw. To vector cleanly in a desired direction, the robot's wheels must rotate at precise speed ratios relative to one another. If the ratios are off, then the movement will be sloppy -- e.g. instead of strafing purely to the right the robot might also drift slightly forward and turn slightly left during the movement. Closed loop speed control mitigates this effect so the robot moves as commanded.<br />
<br />
Dimension Engineering's motor controllers are versatile and reliable options when no closed loop speed control is needed.<br />
<br />
'''Recommended Motor Controllers'''<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1826>RoboteQ SDC2160 2x20A (TE-144-060)</sdr item><br />
*<sdr item id=847>SyRen 10 (TE-098-110)</sdr item><br />
*<sdr item id=822>Sabertooth Dual 25A (TE-091-225)</sdr item><br />
*<sdr item id=1822>Sabertooth Dual 32A (TE-091-232)</sdr item><br />
<br />
===Controller and Controller Interface===<br />
We offer three main [[Control System|control options]] for vectoring robots: Radio Controlled, WiFi, and wireless serial (xBee).<br />
<br />
'''R/C (Radio Control)'''<br />
<br />
For [[Control System#Analog|R/C control]] of the robot, although the motor controllers listed above support RC you will still need a [[Electronic Control Units|microcontroller]] on the robot in order to handle the motor mixing necessary to achieve vectoring motion.<br />
<br />
For accurate robot control, the remote will require at least a two axis joystick/control and a signal switch to change driving modes if desired. Below is a recommended listing of our R/C remotes.<br />
<br />
*<sdr item id=2617> FLYSKY FS-i6 2.4G 6CH Transmitter & Receiver (TE-328-000)</sdr item><br />
*<sdr item id=2672> Spektrum DSMX DX6e Transmitter with AR620 Receiver (TE-336-DX6)</sdr item><br />
*<sdr item id=1135> Spektrum DSMX DX8 8-Channel Transmitter Gen 2 with AR8010T Receiver (TE-113-008)</sdr item><br />
<br />
'''WiFi Control'''<br />
<br />
We offer an Arduino-based <sdr item id=1440>Wifi control interface package (TE-900-003)</sdr item> that includes an <sdr item id=1292>Arduino Mega</sdr item>, <sdr item id=1419>SDR Breakout shield</sdr item>, Raspberry Pi, voltage regulators, and a <sdr item id=1913>4 channel TTL Relay Board (TE-010-405)</sdr item>. The control package also comes with the source code for the control software and the Arduino firmware needed for operation of the robot.<br />
<br />
Please see our [[Wi-Fi Robots|WiFi Control Interface Support Page]] for more information.<br />
<br />
'''Wireless Serial Control'''<br />
<br />
Wireless serial control is achieved through an xBee radio. Wireless serial is currently only available if you choose an Arduino-based control system. The xBee radio connects to the Arduino through the Arduino Wireless SD Shield (MCU-064-000). A Wireless Serial Control system is available by request. Please contact us for more information.<br />
<br />
Please see our [[XBee Wireless Serial Module|Wireless Serial Support Page]] for more information.<br />
<br />
===Hardware===<br />
The final item you need to make your kit complete is a hardware package. It includes nuts, bolts, washers, cable ties, and cable hold downs.<br />
<br />
*<sdr item id=401> Hardware Package (mounts most components to the base robot) (TD-021-000)</sdr item><br />
*<sdr item id=399> Servo Standoff Mounting Hardware (TD-024-000)</sdr item><br />
<br />
===Sensors===<br />
In order to make your robot [[:Category:Autonomous|autonomous]], you will need to add [[:Category:Sensors|sensors]]. Sensors can always be added or removed at a later date but always be mindful of how the sensors interact with your microcontroller. Some sensors operate under I2C, some SPI and some analog. See our [[:Category:Sensors|Sensor Support Page]] for more information.<br />
<br />
*Accelerometers, Gyros, GPS, and Compasses<br />
*Contact Sensors<br />
*Current Sensors<br />
*Force Sensors<br />
*Gas Sensors<br />
*Optical Sensors<br />
*Sonar Range Finders<br />
*Temperature and Humidity Sensors<br />
<br />
[[Category:Vectoring Robots]]<br />
[[Category:Mechanical Engineering]]<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1845Encoder Support2021-04-16T15:33:43Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories==<br />
<br />
===Encoder Buffer and Pull-up Boards===<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
===Motor Controllers with direct encoder feedback===<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
===Motors with Encoders===<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Encoder support'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1844Encoder Support2021-04-16T15:32:30Z<p>Brent: /* Motor Controllers with direct encoder feedback */</p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories==<br />
<br />
===Encoder Buffer and Pull-up Boards===<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
===Motor Controllers with direct encoder feedback===<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
===Motors with Encoders===<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Encoder support'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Vectoring_Robot_Support&diff=1843Vectoring Robot Support2021-04-16T15:32:28Z<p>Brent: /* Motor and Speed Controllers */</p>
<hr />
<div>==How Vectoring Movement is Possible==<br />
Vectoring movement is achieved through a sum of forces generated by each wheel. In Figure 1 below, you will notice that for the robot to move to the right motor A will need to move in the negative direction and motors B and C would move in the positive direction.<br />
<br />
This diagram also shows why motors B and C must be reduced while moving sideways. Motors B and C must have the same power to negate the forward and back movement while motor A must generate the same amount of sideways force as the sum of B and C.<br />
[[File:vectorSupportPage1.jpg|center|thumb]]<br />
<br />
<br />
Figures 2 and 3 show the two distinct types of omni wheels. Both Omni wheels and Mecanum wheels provide traction in normal wheel movement as any other wheel would. however, what makes these wheels special are the small rollers along the wheel's edges. These wheels are designed to provide a minimum amount of friction sideways allowing the wheels to move in any direction.<br />
[[File:vectorSupportPage2.jpg|center|thumb]]<br />
<br />
<br />
Omni wheels have smaller rollers on the edges that move completely perpendicular to the wheel itself. With this type of wheel they must be mounted perpendicular to the center of the robot as seen in Figure 1.<br />
<br />
Mecanum wheels are unique in that the small rollers are at a 45 degree angle. This allows them to be mounted like normal wheels but provide the same style of movement as Omni wheels.<br />
<br />
==4WD Omni-directional Robots==<br />
We have several options for four wheel omni-directional robots. They use mecanum wheels or omni wheels mounted at a 45 degree angle. By changing the speeds and directions of the wheels you can achieve movement in any direction! Due to the style of the wheels it is possible to move the wheels in a standard "tank style" motion to drive normally when needed. These robots also work well for supporting high payloads since the wheels allow them to turn with very low friction. See the load ratings on the robot page for an idea of the payload.{{#evt:<br />
service=youtube<br />
|id=https://youtu.be/Rt2Z3Sxtdn4<br />
|alignment=center<br />
|dimensions=600<br />
}}'''4WD Vectoring Robot Platforms'''<br />
<br />
*<sdr item id=1487> Programmable Mecanum Wheel Vectoring Robot - IG32 DM</sdr item><br />
*<sdr item id=1713> Programmable Mecanum Wheel Vectoring Robot - IG32 SB</sdr item><br />
*<sdr item id=2263> Programmable Mecanum Wheel Vectoring Robot - IG42 SB</sdr item><br />
*<sdr item id=1788> Programmable Mecanum Wheel Vectoring Robot - IG52 DB</sdr item><br />
*<sdr item id=2270> Programmable Quad-Wheel Omni-Directional Vectoring Robot Kit - IG32 SB</sdr item><br />
<br />
==3WD Omni-directional Robots==<br />
Our 3WD omni-directional robots use our double-row omni wheels, allowing them to vector in any direction.<br />
'''3WD Vectoring Robot Platform'''<br />
<br />
*<sdr item id=2229>Programmable Tri-Wheel Vectoring Robot Kit - IG32 Medium Duty SB</sdr item><br />
*<sdr item id=1486>Programmable Triangular Omni Wheel Vectoring Robot - IG32 DM</sdr item><br />
<br />
==Controls and Specifications==<br />
===Motors and Motor Mounts===<br />
We have mecanum wheel robot kits that use IG32, IG42, and IG52 [[motors]]. Below are the motors that we recommend using with these platforms, though you can use different motors if you need more speed or higher payloads. All motors are available in wide range of RPMs and some are available with a built in encoder option. For a detailed list of our available motors please see the link below. The Omni wheel based chassis is available in both IG32 and IG42 variants.<br />
<br />
'''Suggested Motors'''<br />
<br />
*<sdr item id=374> 32mm 190 RPM 24V IG32 Gear Motor (TD-015-190)</sdr item><br />
*<sdr item id=374> 42mm 240 RPM 24V IG42 Gear Motor (TD-016-240)</sdr item><br />
*<sdr item id=872> 52mm 136 RPM 24V IG52 Gear Motor (TD-048-136)</sdr item><br />
*<sdr item id=2109> IG32 or IG42 Motor Mount Tube for Omni Wheel Chassis (TD-056-342)</sdr item><br />
<br />
'''Motor Hookups'''<br />
<br />
*<sdr item id=387> Electric Motor Hookup Kits (TE-024-000)</sdr item><br />
*[[Motor Wiring Support|Electric Motor Wiring Support]]<br />
<br />
Click here for a listing of our available motors.<br />
<br />
===Wheels and Drive Shafts===<br />
Our Mecanum wheels are available stand-alone or paired with compatible wheel hubs. All wheels listed below fit any of the nexus aluminum hubs. The 4" mecanum wheels also fit the SDR manufactured flush mounted hubs.<br />
<br />
*<sdr item id=1352> 4 inch nexus Robot Aluminum Mecanum Wheel - Ball Bearing(TD-090-100)</sdr item><br />
*<sdr item id=2062> 4 inch nexus Robot Aluminum Mecanum Wheel - Sleeve Bearing(TD-169-100)</sdr item><br />
*<sdr item id=2058> 6 inch nexus Robot Aluminum Mecanum Wheel (TD-090-152)</sdr item><br />
*<sdr item id=1351> 8 inch Nexus Robot Aluminum Mecanum Wheel (TD-090-203)</sdr item><br />
*<sdr item id=1488> SDR Flush Mounted Hub with 6mm Bore (TD-107-006)</sdr item><br />
*<sdr item id=1489> SDR Flush Mounted Hub with 8mm Bore (TD-107-008)</sdr item><br />
<br />
Nexus Aluminum Hubs<br />
<br />
*<sdr item id=1359> 6mm Bore - Nexus Aluminum Wheel Hub (TD-094-006)</sdr item><br />
*<sdr item id=1358> 8mm Bore - Nexus Aluminum Wheel Hub (TD-094-008)</sdr item><br />
*<sdr item id=1378> 12mm Bore - Nexus Aluminum Wheel Hub (TD-094-012)</sdr item><br />
*<sdr item id=1379> 0.5" Bore - Nexus Aluminum Wheel Hub (TD-094-050)</sdr item><br />
<br />
The Omni wheels are shafts are sold together as one unit. The shaft comes with a bearing and lock collar that fit into/onto the motors and motor mounts. The wheels are 4 inch in diameter. The traction wheels are made of durable urethane to help grip the floor. The wheels are available in two types; single row and double row. The double row wheels provide smoother operation but both work great.<br />
<br />
*<sdr item id=1734> Nexus Omni-Wheel and Shaft Assembly - 6mm Bore (TD-145-006)</sdr item><br />
*<sdr item id=2291> Nexus Omni-Wheel and Shaft Assembly - 8mm Bore (TD-145-008)</sdr item><br />
<br />
===Mecanum Wheels===<br />
Below is a diagram showing how the mecanum wheels should be mounted and which direction to turn the wheels for vectoring movements.<br />
[[File:mecanum drive wheels vectoring robot tn.jpg|center|thumb|400x400px]]<br />
<br /><br />
<br />
===Motor and Speed Controllers===<br />
[[File:Roboclaw 2x15 Motor Controller.jpg|thumb|250x250px|<sdr item id=2627>RoboClaw 2x15 Motor Controller</sdr item>]]<br />
We offer a variety of [[Motor Controller Support|motor controllers]] to allow for simple operation of the robot. The motor controllers are independent of the chassis type (Mecanum or Omni). To provide vectoring movement it is required to have one motor channel per motor. Higher amperage motor controllers will be needed as the motor size and payload of the robot increases.<br />
<br />
For the best vectoring performance, use motors with [[Encoder Support|encoders]] and a motor controller that has [[Speed Control#Closed Loop|closed loop speed control]], such as a Roboteq or Roboclaw. To vector cleanly in a desired direction, the robot's wheels must rotate at precise speed ratios relative to one another. If the ratios are off, then the movement will be sloppy -- e.g. instead of strafing purely to the right the robot might also drift slightly forward and turn slightly left during the movement. Closed loop speed control mitigates this effect so the robot moves as commanded.<br />
<br />
Dimension Engineering's motor controllers are versatile and reliable options when no closed loop speed control is needed.<br />
<br />
'''Recommended Motor Controllers'''<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item><br />
*<sdr item id=1826>RoboteQ SDC2160 2x20A (TE-144-060)</sdr item><br />
*<sdr item id=847>SyRen 10 (TE-098-110)</sdr item><br />
*<sdr item id=822>Sabertooth Dual 25A (TE-091-225)</sdr item><br />
*<sdr item id=1822>Sabertooth Dual 32A (TE-091-232)</sdr item><br />
<br />
===Controller and Controller Interface===<br />
We offer three main [[Control System|control options]] for vectoring robots: Radio Controlled, WiFi, and wireless serial (xBee).<br />
<br />
'''R/C (Radio Control)'''<br />
<br />
For [[Control System#Analog|R/C control]] of the robot, although the motor controllers listed above support RC you will still need a [[Electronic Control Units|microcontroller]] on the robot in order to handle the motor mixing necessary to achieve vectoring motion.<br />
<br />
For accurate robot control, the remote will require at least a two axis joystick/control and a signal switch to change driving modes if desired. Below is a recommended listing of our R/C remotes.<br />
<br />
*<sdr item id=2617> FLYSKY FS-i6 2.4G 6CH Transmitter & Receiver (TE-328-000)</sdr item><br />
*<sdr item id=2672> Spektrum DSMX DX6e Transmitter with AR620 Receiver (TE-336-DX6)</sdr item><br />
*<sdr item id=1135> Spektrum DSMX DX8 8-Channel Transmitter Gen 2 with AR8010T Receiver (TE-113-008)</sdr item><br />
<br />
'''WiFi Control'''<br />
<br />
We offer an Arduino-based <sdr item id=1440>Wifi control interface package (TE-900-003)</sdr item> that includes an <sdr item id=1292>Arduino Mega</sdr item>, <sdr item id=1419>SDR Breakout shield</sdr item>, Raspberry Pi, voltage regulators, and a <sdr item id=1913>4 channel TTL Relay Board (TE-010-405)</sdr item>. The control package also comes with the source code for the control software and the Arduino firmware needed for operation of the robot.<br />
<br />
Please see our [[Wi-Fi Robots|WiFi Control Interface Support Page]] for more information.<br />
<br />
'''Wireless Serial Control'''<br />
<br />
Wireless serial control is achieved through an xBee radio. Wireless serial is currently only available if you choose an Arduino-based control system. The xBee radio connects to the Arduino through the Arduino Wireless SD Shield (MCU-064-000). A Wireless Serial Control system is available by request. Please contact us for more information.<br />
<br />
Please see our [[XBee Wireless Serial Module|Wireless Serial Support Page]] for more information.<br />
<br />
===Hardware===<br />
The final item you need to make your kit complete is a hardware package. It includes nuts, bolts, washers, cable ties, and cable hold downs.<br />
<br />
*<sdr item id=401> Hardware Package (mounts most components to the base robot) (TD-021-000)</sdr item><br />
*<sdr item id=399> Servo Standoff Mounting Hardware (TD-024-000)</sdr item><br />
<br />
===Sensors===<br />
In order to make your robot [[:Category:Autonomous|autonomous]], you will need to add [[:Category:Sensors|sensors]]. Sensors can always be added or removed at a later date but always be mindful of how the sensors interact with your microcontroller. Some sensors operate under I2C, some SPI and some analog. See our [[:Category:Sensors|Sensor Support Page]] for more information.<br />
<br />
*Accelerometers, Gyros, GPS, and Compasses<br />
*Contact Sensors<br />
*Current Sensors<br />
*Force Sensors<br />
*Gas Sensors<br />
*Optical Sensors<br />
*Sonar Range Finders<br />
*Temperature and Humidity Sensors<br />
<br />
[[Category:Vectoring Robots]]<br />
[[Category:Mechanical Engineering]]<br />
[[Category:Programmable Robots]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1842Encoder Support2021-04-16T15:31:18Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories==<br />
<br />
=== Encoder Buffer and Pull-up Boards ===<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
=== Motor Controllers with direct encoder feedback ===<br />
<br />
*<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item><br />
*<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
<br />
=== Motors with Encoders ===<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Encoder support'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1841Encoder Support2021-04-16T15:26:25Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories:==<br />
'''Encoder Buffer and Pull-up Boards:'''<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1514> Kangaroo x2 motion controller (TE-180-000)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
'''Motors with Encoders:'''<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Motor Controllers with direct encoder feedback:'''<br />
<br />
*<sdr item id=1197> SyRen 50A Regenerative Motor Driver (TE-098-150)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2150 - 2x20A 50V Motor Controller with Encoder Input (TE-144-050)</sdr item><br />
*<sdr item id=1168> RoboteQ SDC2130 - 2x20A 30V Motor Controller with Encoder Input (TE-144-030)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=1833> RoboteQ MDC2230 - 2x60A 30V Motor Controller with Encoder Input (TE-240-030)</sdr item><br />
*<sdr item id=848> SyRen 25A Regenerative Motor Driver (TE-098-125)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=847> SyRen 10A Regenerative Motor Driver (TE-098-110)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=822> Sabertooth Dual 25A Motor Driver (TE-091-225)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1225> Sabertooth Dual 60A motor driver (TE-091-260)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
<br />
'''Encoder support:'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoders&diff=1840Encoders2021-04-16T15:25:43Z<p>Brent: Redirected page to Encoder Support</p>
<hr />
<div>#REDIRECT [[Encoder Support]]<br />
<br />
[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap. Extra wires are present that connect with the encoder.]]<br />
Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing can be measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can also be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm.<br />
<br />
<br />
<br />
<br />
<br />
<br /><br />
<br />
<br />
<br />
<br /><br />
<br />
<br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==Encoder Output==<br />
[[File:quadrature encoder pulses.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
<br />
==Adding Encoders to a Robot==<br />
We have written a practical guide on this topic [[How to Add Encoders to a Robot|here]].<br />
<br />
==Quick Links to our Encoders and Accessories:==<br />
'''Encoder Buffer and Pull-up Boards:'''<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1514> Kangaroo x2 motion controller (TE-180-000)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
'''Motors with Encoders:'''<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Motor Controllers with direct encoder feedback:'''<br />
<br />
*<sdr item id=1197> SyRen 50A Regenerative Motor Driver (TE-098-150)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2150 - 2x20A 50V Motor Controller with Encoder Input (TE-144-050)</sdr item><br />
*<sdr item id=1168> RoboteQ SDC2130 - 2x20A 30V Motor Controller with Encoder Input (TE-144-030)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=1833> RoboteQ MDC2230 - 2x60A 30V Motor Controller with Encoder Input (TE-240-030)</sdr item><br />
*<sdr item id=848> SyRen 25A Regenerative Motor Driver (TE-098-125)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=847> SyRen 10A Regenerative Motor Driver (TE-098-110)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=822> Sabertooth Dual 25A Motor Driver (TE-091-225)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1225> Sabertooth Dual 60A motor driver (TE-091-260)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
<br />
'''Encoder support:'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Encoders]]<br />
[[Category:Electrical Components]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1839Encoder Support2021-04-16T12:44:25Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can also be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories:==<br />
'''Encoder Buffer and Pull-up Boards:'''<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1514> Kangaroo x2 motion controller (TE-180-000)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
'''Motors with Encoders:'''<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Motor Controllers with direct encoder feedback:'''<br />
<br />
*<sdr item id=1197> SyRen 50A Regenerative Motor Driver (TE-098-150)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2150 - 2x20A 50V Motor Controller with Encoder Input (TE-144-050)</sdr item><br />
*<sdr item id=1168> RoboteQ SDC2130 - 2x20A 30V Motor Controller with Encoder Input (TE-144-030)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=1833> RoboteQ MDC2230 - 2x60A 30V Motor Controller with Encoder Input (TE-240-030)</sdr item><br />
*<sdr item id=848> SyRen 25A Regenerative Motor Driver (TE-098-125)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=847> SyRen 10A Regenerative Motor Driver (TE-098-110)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=822> Sabertooth Dual 25A Motor Driver (TE-091-225)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1225> Sabertooth Dual 60A motor driver (TE-091-260)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
<br />
'''Encoder support:'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1838Encoder Support2021-04-16T12:44:09Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can also be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm. This page is an introduction to encoders and how they work. For more information about actually implementing encoders, consult our [[How to Add Encoders to a Robot]] page.<br />
<br /><br />
<br /><br />
<br /><br />
==Sensor Overview==<br />
'''Measurement:''' Motor rotation distance. When attached to the drive motors, used to measure wheel speed and distance.<br />
<br />
'''Ideal operating conditions:''' Robot operating on smooth/even ground where wheels maintain constant rolling contact with no slip.<br />
<br />
'''Sensor Pros:'''<br />
<br />
*Quite accurate over short time periods/distances<br />
*Works indoors and outdoors, day or night<br />
*Good for mitigating discrete jumps in [[Positioning System|position]] and orientation estimates when [[Data Filtering|fused]] with other sensors<br />
*Great fallback sensor when things go wrong<br />
*Can be used for [[Speed Control#Closed Loop|closed loop speed control]] of the wheels<br />
<br />
'''Sensor Cons:'''<br />
<br />
*Requires initial calibration between encoder counts and amount of robot movement<br />
*Assumes no slip between robot wheel and ground. An unstable or inconsistent surface beneath the robot can lead to wheel slippage. Skid-steer robots also experience wheel slippage while turning. This causes error in the estimated robot speed and position because the wheel moves but the robot doesn’t.<br />
*[[Positioning System|Position]] errors from wheel slippage and imperfect calibration accumulate over time/distance to give a progressively worse position estimate. When used to measure speed instead of position this is less of an issue.<br />
*Additional hardware is often needed to keep track of the encoder counts. However, some motor controllers (such as Roboteq models) have this functionality built-in.<br />
<br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
==Adding Encoders to a Robot==<br />
We have written a detailed guide on this topic [[How to Add Encoders to a Robot|here]].<br />
==Quick Links to our Encoders and Accessories:==<br />
'''Encoder Buffer and Pull-up Boards:'''<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1514> Kangaroo x2 motion controller (TE-180-000)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
'''Motors with Encoders:'''<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Motor Controllers with direct encoder feedback:'''<br />
<br />
*<sdr item id=1197> SyRen 50A Regenerative Motor Driver (TE-098-150)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2150 - 2x20A 50V Motor Controller with Encoder Input (TE-144-050)</sdr item><br />
*<sdr item id=1168> RoboteQ SDC2130 - 2x20A 30V Motor Controller with Encoder Input (TE-144-030)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=1833> RoboteQ MDC2230 - 2x60A 30V Motor Controller with Encoder Input (TE-240-030)</sdr item><br />
*<sdr item id=848> SyRen 25A Regenerative Motor Driver (TE-098-125)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=847> SyRen 10A Regenerative Motor Driver (TE-098-110)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=822> Sabertooth Dual 25A Motor Driver (TE-091-225)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1225> Sabertooth Dual 60A motor driver (TE-091-260)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
<br />
'''Encoder support:'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1837Encoder Support2021-04-16T12:35:08Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can also be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==How Encoders Work==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
[[File:encoder2.jpg|thumb|Quadrature Encoder Pulses]]<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
<br />
<br /><br />
<br />
==Reading an Encoder==<br />
There are two basic ways of integrating an encoder into your design. The encoder can either feed back to your motor control circuit or your microcontroller circuit. For feeding the data back to the motor controller itself frees up your microcontroller for other tasks and is incredibly simple to implement. Take Dimension Engineering's Kangaroo x2 Motion Controller. The motion controller attaches to their Sabertooth and SyRen product line and automatically takes care of speed control functions for you. The disadvantage is that it takes your microcontroller out of the loop and misses out of that data so you cannot write a program to move the motor precisely 90 degrees because the microcontroller doesn't know where the motor is. The Kangaroo can be polled for the data, but that is typically not fast enough. Other motor controllers such as the RoboteQ's have encoders built in too.<br />
<br />
The other option is to have the encoder output wired to your microcontroller circuit. It is possible to have it directly tied to your microcontroller but you will have to have it constantly sit there and check for the pulses. This will tie up your microcontroller so it will not be able to complete another function while the motor is moving. A solution for this is our LS7366R quadrature buffer breakout. The LS7366R takes care of watching for the encoder pulses and you simply send it a SPI command when you want to know where you are or to reset the encoder counts. This way you can receive precise encoder feedback without having to devote all of your resources to it.<br />
<br />
==Quick Links to our Encoders and Accessories:==<br />
'''Encoder Buffer and Pull-up Boards:'''<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1514> Kangaroo x2 motion controller (TE-180-000)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
'''Motors with Encoders:'''<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Motor Controllers with direct encoder feedback:'''<br />
<br />
*<sdr item id=1197> SyRen 50A Regenerative Motor Driver (TE-098-150)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2150 - 2x20A 50V Motor Controller with Encoder Input (TE-144-050)</sdr item><br />
*<sdr item id=1168> RoboteQ SDC2130 - 2x20A 30V Motor Controller with Encoder Input (TE-144-030)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=1833> RoboteQ MDC2230 - 2x60A 30V Motor Controller with Encoder Input (TE-240-030)</sdr item><br />
*<sdr item id=848> SyRen 25A Regenerative Motor Driver (TE-098-125)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=847> SyRen 10A Regenerative Motor Driver (TE-098-110)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=822> Sabertooth Dual 25A Motor Driver (TE-091-225)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1225> Sabertooth Dual 60A motor driver (TE-091-260)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
<br />
'''Encoder support:'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brenthttps://wiki.sdrobots.com/index.php?title=Encoder_Support&diff=1836Encoder Support2021-04-16T12:33:02Z<p>Brent: </p>
<hr />
<div>[[File:TD-044-078 ig42 motor encoders.jpg|thumb|191x191px|The encoder is inside the black end cap|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Rotary encoders are devices that generate electrical pulses as they rotate. The angle or rate of rotation that the encoder is experiencing is measured by monitoring the number or frequency of the pulses. In robotics, encoders are most commonly attached to the robot's drive motors and used to measure the robot's linear speed, angular speed, and distance traveled. Drive motor encoders can also be used to perform [[Speed Control#Closed Loop|closed loop speed control]] on the wheels. More generally, encoders can be attached to any of the robot's joints to track its speed and/or angle, such as a rotating joint in a robotic arm.<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
==Summary==<br />
<br />
An encoder is a device attached to an actuator or motor that enables you to measure precise movements. The advantages of this are precision movements and speed control. There are two main types of encoders, hall-effect and optical. A hall-effect encoder typically uses an iron mass or magnet, the sensor then 'watches' for changes in the magnetic field. An optical encoder uses layered disks. The disks have symmetrical areas of transparent and opaque material that allows a light source, such as an LED to pass through and strike a photo detector.<br />
[[File:encoder1.jpg|center|thumb]]<br />
<br />
<br />
Both types of encoders are fundamentally solid. Deciding between the two depends on your budget and your desired CPR (Counts Per Revolution). Hall-effect encoders tend to be less expensive but have a significantly lower CPR. This is not necessarily a bad thing. If you just want to know how far your robot has traveled you do not need the 1,000-2,000 counts for an optical encoder a 98 CPR for a hall-effect encoder provides more than enough resolution for you needs. A standard six inch tire has a circumference of approximately 18.8 inches. At a 98 CPR you have a resolution of 0.19 inches (a little over an eight of an inch). Typically an encoder is put on the motor, which is then geared down. So if you have a 1:10 reduction, your encoder now will read 0.019 inches per count.<br />
<br />
==Encoder Output==<br />
Encoders typically output what is known as a quadrature signal. A quadrature signal is comprised of two channels (Channel A and Channel B). Channel B is 90 degrees out of phase from channel A. This allows the circuitry watching the output signal to know what direction you are traveling. If B trails A then your motor is moving clockwise, if A trails B then your motor is moving counter clockwise.<br />
[[File:encoder2.jpg|center|thumb]]<br />
Picture<br />
<br />
==Reading an Encoder==<br />
There are two basic ways of integrating an encoder into your design. The encoder can either feed back to your motor control circuit or your microcontroller circuit. For feeding the data back to the motor controller itself frees up your microcontroller for other tasks and is incredibly simple to implement. Take Dimension Engineering's Kangaroo x2 Motion Controller. The motion controller attaches to their Sabertooth and SyRen product line and automatically takes care of speed control functions for you. The disadvantage is that it takes your microcontroller out of the loop and misses out of that data so you cannot write a program to move the motor precisely 90 degrees because the microcontroller doesn't know where the motor is. The Kangaroo can be polled for the data, but that is typically not fast enough. Other motor controllers such as the RoboteQ's have encoders built in too.<br />
<br />
The other option is to have the encoder output wired to your microcontroller circuit. It is possible to have it directly tied to your microcontroller but you will have to have it constantly sit there and check for the pulses. This will tie up your microcontroller so it will not be able to complete another function while the motor is moving. A solution for this is our LS7366R quadrature buffer breakout. The LS7366R takes care of watching for the encoder pulses and you simply send it a SPI command when you want to know where you are or to reset the encoder counts. This way you can receive precise encoder feedback without having to devote all of your resources to it.<br />
<br />
==Quick Links to our Encoders and Accessories:==<br />
'''Encoder Buffer and Pull-up Boards:'''<br />
<br />
*<sdr item id=1523> Dual LS7366R Quadrature Encoder Buffer Breakout Board (TE-183-002)</sdr item><br />
*<sdr item id=1514> Kangaroo x2 motion controller (TE-180-000)</sdr item><br />
*<sdr item id=1512> IG32, IG42, and IG52 Gear Motor Encoder Pull-up Board (TE-179-000)</sdr item><br />
<br />
'''Motors with Encoders:'''<br />
<br />
*<sdr item id=1238> IG42 24VDC 013 RPM Gear Motor with Encoder (TD-044-013)</sdr item><br />
*<sdr item id=1181> IG52-04 24VDC 082 RPM Gear Motor with Encoder (TD-045-082)</sdr item><br />
*<sdr item id=1134> IG32P 24VDC 075 RPM Gear Motor with Encoder (TD-055-075)</sdr item><br />
*<sdr item id=1099> IG32 24VDC 074 RPM Gear Motor with Encoder (TD-054-074)</sdr item><br />
*<sdr item id=1036> IG42 24VDC 078 RPM Gear Motor with Encoder (TD-044-078)</sdr item><br />
*<sdr item id=998> IG32P 24VDC 265 RPM Gear Motor with Encoder (TD-055-265)</sdr item><br />
*<sdr item id=997> IG32P 24VDC 190 RPM Gear Motor with Encoder (TD-055-190)</sdr item><br />
*<sdr item id=996> IG32 24VDC 191 RPM Gear Motor with Encoder (TD-054-191)</sdr item><br />
*<sdr item id=937> IG52-04 24VDC 010 RPM Gear Motor with Encoder (TD-045-010)</sdr item><br />
*<sdr item id=873> IG52-04 24VDC 136 RPM Gear Motor with Encoder (TD-045-136)</sdr item><br />
*<sdr item id=849> IG42 24VDC 122 RPM Gear Motor with Encoder (TD-044-122)</sdr item><br />
*<sdr item id=843> IG52-04 24VDC 285 RPM Gear Motor with Encoder (TD-045-285)</sdr item><br />
*<sdr item id=840> IG42 24VDC 240 RPM Gear Motor with Encoder (TD-044-240)</sdr item><br />
<br />
'''Motor Controllers with direct encoder feedback:'''<br />
<br />
*<sdr item id=1197> SyRen 50A Regenerative Motor Driver (TE-098-150)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1169> RoboteQ SDC2150 - 2x20A 50V Motor Controller with Encoder Input (TE-144-050)</sdr item><br />
*<sdr item id=1168> RoboteQ SDC2130 - 2x20A 30V Motor Controller with Encoder Input (TE-144-030)</sdr item><br />
*<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item><br />
*<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item><br />
*<sdr item id=1833> RoboteQ MDC2230 - 2x60A 30V Motor Controller with Encoder Input (TE-240-030)</sdr item><br />
*<sdr item id=848> SyRen 25A Regenerative Motor Driver (TE-098-125)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=847> SyRen 10A Regenerative Motor Driver (TE-098-110)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=822> Sabertooth Dual 25A Motor Driver (TE-091-225)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
*<sdr item id=1225> Sabertooth Dual 60A motor driver (TE-091-260)</sdr item> with <sdr item id=1514> Kangaroo Option</sdr item><br />
<br />
'''Encoder support:'''<br />
<br />
*[https://sdrobots.com/ig3242-52-encoder-interfacing-cpr-calculation/ IG32,42, and 52 Encoder Interfacing and CPR Calculation.]<br />
*[https://sdrobots.com/tech-thursday-029-encoder-cpr-resisted/ Encoder CPR – Revisited.]<br />
*[https://sdrobots.com/roboteqs-xdc2460-controller-speed-controller-encoder-input/ Speed controller with encoder input.]<br />
*[https://sdrobots.com/encoder-support-overview/ Encoder Support Overview]<br />
<br />
[[Category:Sensors]]<br />
[[Category:Electrical Components]]<br />
[[Category:Encoders]]</div>Brent