Power conversion formula:


10 v times 5 amps = 50 VA


Electric motors of all types share common characteristics during their starting and run-up. Without some form of control, the motor will take very high currents and the switching may cause voltage spikes that could damage equipment.


###  Motor Starting & Control Resistors


Rotor connected resistors are mainly used for motor starting applications
which require a high-starting torque, such as loaded belt conveyors in the
mining industry. By using external resistors, it is possible to shift the
motor maximum (break-down) torque up to a starting torque point for motors
under heavy loads during start-up. The resistors are split into steps and
controlled via contactors by a motor starting control system. As the motor
speed increases, the external rotor resistors are eliminated via shorting
contactors until all external resistors are shorted out.


Additional information:
Please note the attached PDF which holds this information formatted for print-out.
Cross reference:
Power conversion in PWM power stages
Motor current measurement in case of a PWM power amplifier
What is the power consumption of a controller?
EPOS / IDX: Checking the motor current draw
EPOS4 / IDX: Calculation of the electrical motor power
ESCON: Checking the motor current draw


Solution:
A motor controller’s power stage is like a power converter or a kind of electronic transformer. This means that you have to compare the input power (= “Supply voltage” x “Input current”) provided by the power supply against the output power (= “Motor voltage” x “Motor current”) supplied to the motor by the motor controller’s power stage. If you just compare the “Input current” and the “Motor current” this is misleading and has no meaning at all.


While VSDs have taken over a number of traditional motor control techniques, many applications still require resistors to help keep them turning effectively. Whether it’s for a wound rotor motor for heavy industrial operations, or to limit starting motor current, resistors still play a key role in keeping motors in control.


Calculations | Simple Electric Motors
Good science project does not stop with building a motor. It is very important to measure different electrical and mechanical parameters of your motor and calculate unknown values using the following helpful formulas. We will use the International System of Units (SI). This is modern metric system that is officially accepted in electrical engineering in […]
https://simplemotor.com/calculations/
Profile photo for Kev Go
Kev Go
Training Electricians (2012–present)Author has 9.1K answers and 7.8M answer views
 ·
1y
Related
What determines the rotation speed of an electric motor: voltage or current?
That depends on the type of electric motor. There are many types of electric motors and you have not specified any type of motor so my answer will be also be extremely vague. Some motors are not best controlled by voltage.


The motor you’ve mentioned is a BLDC motor, not a regular DC Motor.


K
t
 = is Torque Constant, in N-m/A


#####  Types


As the motor accelerates, the back emf will build and the current through the
resistor will thus decrease. Additionally, the voltage drop on the resistor
will reduce, causing the voltage across the terminals increases. With this
gradually increasing torque and voltage, the acceleration becomes smooth. The
resistance is disconnected when the motor reaches a certain speed. At this
point, the motor will run with full line voltage.


It is important to note that this is valid for all of DC motors which are based on brushed DC motors, so it applies to:


Profile photo for Aditiya Herawan
Aditiya Herawan
Studied at Stimik Jabar
 ·
8y
Related
What is the relation between RPM current and voltage in a DC motor?
voltage which applied to motor dc terminals will determined the RPM, when motor loaded it will increase current. also current will influence the torque


Similarly in a DC motor the torque and speed are inversly proportional to each other.


8K viewsView upvotes
1 of 4 answers
Profile photo for Muralidhar Rao
Muralidhar Rao
Instructor Avionics (Electrical)Author has 2.5K answers and 2.3M answer views
 ·
8y
Related
What is the relation between RPM current and voltage in a DC motor?
DC motor rpm is proportional to current and voltage,up to some limit only.rpm(speed),load and current varies as per the characteristics of different DC motors (series, shunt and compound wound ).


Conclusion / Take-away:
The "Input current" of the motor controller (= output current of the power supply or battery) does NOT(!!) equal the "Motor current"!
The input current of the motor controller reported by the power supply is correct.
The motor current measured and reported by the motor controller is correct.
It is not possible to compare these two current values directly
because the supply voltage and the motor voltage is different!


Share
You must be logged in to comment
Write a comment
No comments


Field flux adjustment, by increasing field current the motor will slow down while reducing the field current will speed up the motor. Where did you get the idea that armature voltage wouldn’t vary motor speed?


Profile photo for Paul Montgomery
Paul Montgomery
Retired electrical engineer. Founder-industral controls Co.Author has 6.1K answers and 32.9M answer views
 ·
7y
Related
When you double the voltage in a simple circuit, do the power and the current double as well?
Originally Answered: When we double voltage in a simple circuit does power and current doubles?
In a purely resistive circuit if you double the voltage the current will also double.


UC3872MG4 - RESONANT LAMP BALLAST CONTROLLER
Tech Videos
Read more


Profile photo for Kevin Baker
Kevin Baker
Licensed PE (Electrical) since 1996. Author has 4.9K answers and 12.1M answer views
 ·
9y
Related
Why does stalling a DC motor cause more current to flow through it?
Stalling any motor causes more current to flow through it, not just DC motors.


Motor Starting Resistors are necessary because the self resistance of a motor
armature is very low. When the voltage is first applied, excessive current
will flow. Because there will be no back electromotive force (emf) to limit
this current, some series resistance can be added to the armature windings.


Which is constant for a particular machine and therefore the torque of DC motor varies with only flux φ and armature current Ia


Related questions
What is the relation between RPM current and voltage in a DC motor?
What is the relationship between load and voltage in a series DC motor?
What is the relationship between voltage and torque in a DC series motor?
What is the relationship between current, voltage, and speed in DC motors?
What is the difference between the armature current in a DC shunt motor and a DC series motor?
Profile photo for Uday Garg
Uday Garg
Studied Electrical Engineering (Graduated 1967)Author has 921 answers and 1M answer views
 ·
1y
The relationship of Current and Voltage in a Series DC Motor is V = Ea + Ia(Ra+Rse)


As an unloaded DC motor spins, it generates a backwards-flowing electromotive force that resists the current being applied to the motor. The current through the motor drops as the rotational speed increases, and a free-spinning motor has very little current. It is only when a load is applied to the motor


LM3677TL-ADJ/NOPB - Conv DC-DC Single Step Down 2.7V to 5.5V 5...


DRV103UG4 - MOSFET DRVR 1.5A 1-OUT Lo Side 8-Pin SOIC Rail


  * [ Home ](./)
  * Products
    * [ POWER RESISTORS ](powerresistors.html)
      * [ Neutral Grounding Resistors ](neutralgroundingresistors.html)
      * [ High Resistance Neutral Grounding Devices ](highresistanceneutralgrounding.html)
      * [ Generator Neutral Grounding & Leads Cubicles ](generatorleadsandgroundingcubicle.html)
      * [ Dynamic Braking Resistors ](inverterbreakingresistors.html)
      * [ Motor Starting & Control Resistors ](motorstartingandcontrolresistors.html)
      * [ Harmonic Filter Resistors ](harmonicfilteringresistors.html)
      * [ Current Limiting Resistors ](currentlimitingresistors.html)
      * [ Sensing Resistors ](sensingresistors.html)
      * [ Crowbar Resistors ](crowbar.html)
      * [ Anti-Condensation Heaters ](cubicleheaters.html)
      * [ Explosion-Proof Heaters ](explosionproofheaters.html)
      * [ Railway Resistive and Inductive Elements ](railway-resistive-and-inductive-elements.html)
    * [ MV & HV REACTORS ](mediumvoltagereactors.html)
      * Air Core Reactors
        * [ Current Limiting Reactors ](aircorecurrentlimitingreactors.html)
        * [ Neutral Grounding Reactors ](neutralgroundingreactors.html)
        * [ Shunt Reactors ](aircoreshuntreactors.html)
        * [ Harmonic Filter Reactors ](aircoreharmonicfilteringreactors.html)
        * [ Motor Starting Reactors ](motorstartingreactors.html)
        * [ Electric Arc Furnace Reactors ](electricarcfurnacereactors.html)
        * [ Smoothing Reactors ](aircoresmoothingreactors.html)
        * [ Line & Load Reactors ](aircorelineandloadreactors.html)
        * [ Test Lab Reactors ](aircoretestlaboratoryreactors.html)
        * [ PLC Line Traps ](plclinetraps.html)
      * Iron Core Reactors
        * [ Shunt Reactors ](ironcoreshuntreactors.html)
        * [ Current Limiting Reactors ](ironcorecurrentlimitingreactors.html)
        * [ Oil Filled Magnetically Shielded Current Limiting Reactors ](oilfilledmagneticshielded-currentlimitingreactors.html)
    * [ SPECIAL TRANSFORMERS ](specialtransformers.html)
      * [ Grounding Transformers ](groundingtransformers.html)
      * [ Motor Starting Auto-Transformers ](motorstartingautotransformers.html)
      * [ High Current Transformers ](highcurrenttransformers.html)
    * [ MOTOR CONTROL ](motorcontrol.html)
      * Reduced Voltage Motor Starting Panels
        * [ by Reactors ](motorstartingpanelsbyreactors.html)
        * [ by Auto-Transformers ](motorstartingpanelsbyautotransformers.html)
      * [ MV Soft Starters ](softstarters.html)


Profile photo for Varun D Nair
Varun D Nair
SO/C at Board of Radiation and Isotope Technology
 ·
5y
Related
What is the relation between torque and speed in a DC motor?
There are two torques which needs to be understood one is the load torque, i.e the mechanical load applied on the shaft of the machine and the other the induced torque which is produced within the motor to drive the load at a particular speed, the induced torque is a function of current in the motor.


Accessibility Statement
Compliance
Site Map
SparkFun Electronics ® 6333 Dry Creek Parkway, Niwot, Colorado 80503


Power = torque*speed (power is constant)


Electronic Specifier Upcoming Events
GISEC Global
23rd April 2024
United Arab Emirates Halls 2-8 - Dubai World Trade Centre
The Magnetics Show US
22nd May 2024
United States of America The Pasadena Convention Center
2024 World Battery & Energy Storage Industry Expo (WBE)
8th August 2024
China 1st and 2nd Floor, Area A, China Import and Export Fair Complex
Our Company


What is the relationship between voltage and current in a series DC motor as it rotates at different speeds?
Sort
Profile photo for Abhishek Srivastava
Abhishek Srivastava
Works at Electrical Engineering (2013–present)Author has 242 answers and 152.1K answer views
 ·
1y
In a series DC motor, the relationship between voltage and current changes as the motor rotates at different speeds. When the motor is stationary or rotating slowly, the current drawn by the motor is high because the back EMF (electromotive force) generated by the motor is low. As the motor rotates faster, the back EMF increases, which reduces the net voltage across the motor and, therefore, the current drawn by the motor.


is equal to the voltage drop across the coil resistanc


Armature voltage control where motor speed will increase with an increase in Armature voltage and decrease with a drop in armature voltage


An electric motor converts electrical energy into rotary, kinetic energy in order to power a diverse array of processes such as drives, fans, pumps or conveyor belts. Each process requires a specific motor, with specialised characteristics for each unique function.


Find a Retailer
Need Help?
sparkfun.com
SHOP

LEARN

BLOG

CUSTOM KITS
Shopping Cart
0
ITEMS
find products, tutorials, etc...
TODAY'S DEALS
FORUM
HOME PRODUCT CATEGORIES POWER ACCESSORIES SPARKFUN DC/DC CONVERTER BREAKOUTCSV/JSON/
41% off
SparkFun DC/DC Converter Breakout
Creative Commons images are CC BY 2.0
 SHAREShare on TwitterShare on FacebookPin It

SparkFun DC/DC Converter Breakout
Only 6 left! BOB-09370 ROHS
     4
$33.95 $19.95
1
Stock availability
DESCRIPTION
FEATURES
DOCUMENTS
This is a breakout board for our non-isolated, 6A DC-to-DC Converter Module. The module can convert any DC voltage between 4.5-14VDC to a selectable voltage between 0.59 and 5.5VDC.
To set the output voltage to the desired level, a resistor must be added between the Trim and GND pins. For example, to set the module to output 5V use a 1.34kΩ resistor, or to get 3.3V use a 2.182kΩ. See table 1 in the module's datasheet for more resistor values.
The ON/OFF pin on the board can be pulled high to turn the converter module on and low to turn it off.
Board comes as shown, with all components (aside from the trim resistor) populated. Access to all pins of the converter module is provided by two, 0.1" pitch headers.
Tags
BREAKOUT CONVERTER DC/DC CONVERTER POWER SPARKFUN ORIGINAL VOLTAGE
Hookup Accessories for SparkFun DC/DC Converter Breakout
PAGE 1 OF 1
Break Away Headers - Straight


Ra is the Armature Resistance,


  * Designed and tested to applicable IEC and IEEE Standards
  * Designed for all squirrel cage and slip-ring induction motors and synchronous motors
  * Durable construction
  * Stainless steel grid or alloy resistance elements
  * High performance in heavily polluted areas


Today, the introduction of Variable Speed Drives (VSDs) has taken over many of these techniques as the device is used to convert the fixed incoming power to a variable voltage and then manage the motor’s output speed according to the device’s changeable demands.


Helping engineers understand the new motor legislati…
Transformer to help power Africa
Smooth and reliable speed control for DC motors


Profile photo for Jennifer Perry
Jennifer Perry
Former Assistant Researcher
 ·
6y
Related
What is the torque-current relation in a DC motor?
The equation of torque is given by,


Profile photo for David Storey
David Storey
Former Teacher of Electrical Engineering (1977–2014)Author has 725 answers and 451.8K answer views
 ·
Updated 1y
Related
Why is it not possible to vary the speed of a DC motor by changing its supply voltage?
Armature voltage control is definitely used to vary the speed. The 2 main methods for speed control are:


Of course, real motors are not theoretical objects, and are subject to the limitations of real physical objects. There will be some degree of drag in the bearings and brushes which will cause the motor to run slower than you would expect based purely on the Kv nu


In a purely resistive circuit, VA and watts are the same.


Where,


      * [ Slip-Ring Motor Starting Panels ](rotorstarter.html)
      * [ Braking Chopper for External Resistors ](brakechop.html)
    * STATCOM
      * [ STATCOM Solutions ](stcsolution.html)
      * [ Container-Type STATCOM ](containerstc.html)
      * [ Panel-Type STATCOM ](panelstc.html)
    * [ POWER QUALITY ](powerquality.html)
      * Iron Core Reactors
        * [ Harmonic Filter Reactors ](lvironcoreharmonicfilterreactor.html)
        * [ Shunt Reactors ](lvironcoreshuntreactor.html)
        * [ Motor Starting Reactors ](lvironcoremotorstartingreactor.html)
        * [ Smoothing Reactors ](lvironcoresmoothingreactors.html)
        * [ Line & Load Reactors ](lvironcorelineandloadreactors.html)
      * Motor Drives Input/Output Filters
        * [ LCL Filters ](lclfilter.html)
        * [ Sine Filters ](sinefilter.html)
        * [ dv/dt Filters ](dvdtfilter.html)
        * [ Motor Termination Units ](motorterminationunit.html)
      * [ MV Capacitor Banks ](MVcapacitorbanks.html)
      * [ Surge Capacitors ](surgecapacitors.html)
      * RC Snubber Filters
        * [ Compact RC Snubber Filters ](compactrc.html)
        * [ Metal Enclosed RC Snubber Filters ](metalenclosedrcfilters.html)
    * [ TESTING SYSTEMS ](testingsystems.html)
      * Load Banks
        * [ R-Series Resistive ](loadbanks-r-series.html)
        * [ L-Series Inductive ](loadbanks-l-series.html)
        * [ C-Series Combined ](loadbanks-c-series.html)
        * [ RD-Series Radiator Mounted ](loadbanks-rd-series.html)
        * [ AI-Series Anti-Islanding ](loadbanks-ai-series.html)
        * [ Accessories ](loadbanks-accessories.html)
      * [ Turn-Key Short Circuit Laboratories ](turnkeyshortcircuitlaboratories.html)
      * [ Primary Current Injection Testers ](highcurrentinjectiontestsets.html)
  * Services
    * [ Engineering Services ](engineeringservices.html)
    * [ RC Snubber Design ](rcsnubberdesign.html)
  * [ Accredited Test Laboratory ](testlaboratory.html)
  * [ About ](about.html)
  * [ Contacts ](contact.html)


Star-delta is a commonly used starting method in which the stator coils of the motor are initially connected in a star configuration and are switched to delta as the motor speed increases. This reduces the start current applied to the motor, reducing the risk of disturbances and interference on the electrical supply.


####  1\. Stator Connected Resistors


K
t
=
τ
I
a
=
0.45
12
=
37.5
⋅
e
(
−
3
)
N-m/A


About Electronic Specifier
Our Publications
Privacy Policy
Terms and Conditions
Tools
Our Companies


The power stage of modern motor controllers (like maxon’s ESCON, EPOS, or MAXPOS) are based on a so-called PWM (= Pulse Width Modulation) controlled motor voltage. The motor voltage is turned on and off at a high frequency (of typically 50 - 100 kHz) by the motor controller’s logic. The power on time (= so-called “PWM duty cycle”) within each PWM cycle (of 0.01 ms in case of 100 kHz) determines the actually present level of motor voltage. The resulting motor voltage can vary in between 0V up to almost the supply voltage in both directions. The motor voltage (resp. the PWM duty cycle) is adjusted within each current control cycle (of typ. 0.1 - 0.01 ms) of the motor controller depending on the currently demanded operating point (i.e. speed and torque) of the motor. Based on the power equation this means that the motor current can (and typically will) be much higher than the input current of the motor controller. The reason for this is that the permanently PWM adapted motor voltage (depending on speed and torque) is lower than the fixed supply voltage (of a battery or power supply).


Here the car requires less torque so the speed would be more and again the power would be constant.


DC Motor Equivalent Circuit


  * AC Squirrel Cage Induction Motor Resistors
  * AC Slip-ring Induction Motor Resistors
  * Crane control resistors
  * Starting Resistors
  * Speed Control Resistors
  * Synchronous Motor Resistors


A challenge to this solution can arise when the motor coils in the configuration are briefly open-circuit, causing a voltage spike. To eliminate this problem, a selection of small resistors are put into the circuit for a short period of time via a third contactor.


  * Overhead cranes
  * Lift trucks
  * Machine tools
  * Conveyors
  * Cement plants
  * Industrial controls
  * Steel mills
  * Ships and submarines
  * On load starting motors


  * Application area
  * Motor rated power
  * Rotor current
  * Rotor voltage
  * Starting Torque
  * Desired starting time (seconds)
  * Duty Cycle
  * Number of starting steps


However, when spares or replacements are wanted for existing installations and motors of all types, engineers can turn to resistors to address their motor’s power needs.


So as u can see the car here needs high torque to climb up the hill so automatically it's speed would be less so again the power would be constant.


Wound up
Despite the introduction of VSDs, round rotor motors with slip rings are still used for high power or medium voltage applications, typically in gruelling operation conditions where the combination of precise control and high reliability cannot be achieved using a VSD. Take a cement plant, for example. There, equipment such as large grinding mills that need to drive high torque load demands at low speeds.


For a shunt-wound DC motor with fixed field strength, armature voltage controls speed, at least to the limits of the motor's ability to produce torque. Armature current does not control torque. Torque is a function of the load. The motor will draw the current necessary to produce the torque the load requires. At voltage V the armature will spin at speed S. Apply torque to the armature and the current drawn by the armature will increase. Incre


In this motor application, the rotor windings are connected to external resistance through slip rings that control the output of the motor. To control the current during the motor’s start-up, multiple sets of resistors are connected across the slip rings. As the motor speeds up, the resistances are removed in timed steps using short-circuiting contactors.


So, if you wish to know how much torque given current will produce, within reasonably accuracy


####  2\. Rotor Connected Resistors


Profile photo for Raymond Roberts
Raymond Roberts
Retired Engineer, Private Pilot, ASMEL-IAAuthor has 163 answers and 439.1K answer views
 ·
6y
Related
Why does voltage increase the speed of a DC motor?
The armature windings of a dc motor cut the field lines of the stator’s magnetic field as the armature rotates, creating an induced or back emf. According to Faraday’s law, e=-Nd(phi)/dt, where e is the induced emf, N is the number of turns in the winding and d(phi)/dt is the rate of change of the magnetic flux linking those windings, which is proportional to RPM. Also, according to Kirchhoff’s law, the sum of all voltages around a closed circuit must be zero, so the induced voltage plus the resistive voltage drop in the armature must always be equal to (and opposing) the supply voltage.


Electronic Specifier
Distiblog
 Product Centre
 Careers
 Events
 Login
Register
Getting in control: how resistors benefit motor control
?????	Capital Equipment	Control	Design	Electrical Equipment	Events	Industry 4.0 / IIoTMachining	Materials	Components	Motors & Drives	Pumps & Valves	SafetySensors	Test & Monitoring	Women in Engineering
Getting in control: how resistors benefit motor control
Home > Motors & Drives > Getting in control: how resistors benefit motor control
16th April 2020Source: Cressall Resistors
Posted By : Lanna Deamer


DC motors, directly
DC gearmotors, directly with a simple mechanical speed reduction
Vibration motors, which have a fixed load
We start with the equivalent circuit of a brushed DC motor:


The role of motors in laboratory productivity
How static motor testing can support preventative ma…
G5-5 harmonic recommendations demand attention


This is the torque equation of DC motor. It can be further simplified as:


Share
Getting in control: how resistors benefit motor control
From the electric fans and power tools in our homes, to crane control systems and industrial machinery - motors can be found in mechanical applications of all shapes and sizes. But what exactly keeps them turning? Joshua Piccaver, Electrical Design Engineer at Cressall Resistors, explains why resistors are key to ensuring steady motor control.


Profile photo for Arjun Unniumbath
Arjun Unniumbath
Associate,test Automation specialist @ Cognizant Softvision9y
Related
What is the relation between RPM current and voltage in a DC motor?
The voltage with no load will be a good indicator of RPM. Current depends on the load and on the voltage, so if you have a fixed load, say a resistor, the current will track the voltage, but if the load is enough to load down the motor, then the voltage (and the current) will fall off at higher RPM.


Variable frequency drives are commonly used for speed control of AC induction motors. They monitor frequency, voltage, current for best torque and sp


Hilkar  ©


Motor power measurement by the EPOS4 or IDX:
Please check the following Support Center document to find some information how all relevant data (Supply voltage, Motor current, PWM duty cycle) can be accessed by an EPOS4's or IDX's objects and how the motor's electrical power can be calculated based on this:
-> EPOS4 / IDX: Calculation of the electrical motor power


Where, F is force in linear direction.
R is radius of the object being rotated,
and θ is the angle, the force F is making with R vector


The math is simple, you’ve mentioned that peak current is 12A and the peak torque is 0.45 Nm.


Like this Article? Register to receive updates here


Ia is the Armature Current,


Profile photo for Kevin Baker
Kevin Baker
Electrical Engineer (1996–present)Author has 4.9K answers and 12.1M answer views
 ·
8y
Related
How does voltage and current determine the speed and torque of a DC electric motor?
Gregory Diana's answer is complete and mathematically accurate. If you're not an engineer conversant in the equations, here's the layman's version:


A-Z list of Companies
Engineering


The power equation counts: PEl.Motor = PInput - PElectronics
The motor voltage is always lower than the supply voltage.
The motor voltage varies permanently at a high frequency
and depends on the speed and back-EMF of the motor.
The motor current is typically much higher than the current provided by the power supply or battery.


Our Publications
Downloads


ENGLISH_PowerConversion_V2-00en.pdf
200 KB Download
DEUTSCH_PowerConversion_V2-00de.pdf
200 KB Download
Facebook Twitter LinkedIn
Was this article helpful?   0 out of 0 found this helpful
Have more questions? Submit a request
Related articles
Motor current measurement in case of a PWM power amplifier
EPOS4 / IDX: Calculation of the electrical motor power
What supply voltage is required by a controller?
PWM power stage: Current ripple & Motor chokes
Motor's "Nominal voltage" versus a Controller's "Supply voltage"?
Comments
0 comments
Article is closed for comments.
Articles in this section
What supply voltage is required by a controller?
What is the meaning of STO?
Why can the usage of a motor controller be an advantage even for a DC motor?
PWM, PWM scheme (2 level, 3 level), Current ripple, Motor heating
Speed measurement and Accuracy of speed control
Motor controllers: Input current versus Motor current, Power Conversion
PWM power stage: Current ripple & Motor chokes
PrivacyLegal InformationTerms and conditionsImprint
Copyright maxon motor ag 2019


Electronic Specifier
Distiblog
Copyright 2014 Electronic Specifier Ltd


Speed control can be via phase control for some AC motors and pulse width modulation for some DC motors.


where


-Møhmmad (038)


Profile photo for Werner Janik
Werner Janik
Studied Automatisierungstechnik at Technical University of DarmstadtUpvoted by
Bert Willke
, Ph.D. Physics, Massachusetts Institute of Technology (1963)Author has 1.1K answers and 313.6K answer views
 ·
2y
Related
How are angular speed and torque related to the current and voltage of a DC electromotor?
You can basically calculate:


P is no of poles,
φ is flux per pole,
Z is no. of conductors,
A is no. of parallel paths


Sign up to view our publications


Motor Starting Resistors are used to reduce the voltage at the motor terminals
and also decrease the starting current.


I
a
 = Armature current, in Amps


Profile photo for Darshan Pandit
Darshan Pandit
Sr Software Engineer (2018–present)Author has 479 answers and 1.9M answer views
 ·
6y
Related
What is the torque-current relation in a DC motor?
Hello friend,


At low speeds, the resistance of the motor winding dominates the relationship between voltage and current. The current through the motor is proportional to the applied voltag


τ
=
K
t
⋅
I
a


Related questions
Does voltage or current change motor speed?
What is the relationship between load and voltage in a series DC motor?
What is the relation between RPM current and voltage in a DC motor?
What is the relationship between current, voltage, and speed in DC motors?
What is the relationship between armature current and speed in a DC motor?
What is the relationship between voltage and torque in a DC series motor?
What is the relationship between voltage and current in a DC shunt motor?
Can the speed of a DC series motor be controlled by changing voltage or current in it?
Does rotating a DC motor produce electricity?
What is nominal voltage in a DC motor?
What is the relationship between voltage and DC motor output speed?
What causes the voltage to drop in a DC motor when it starts to rotate?
Can a DC motor rotate at a higher speed if another identical DC motor is connected to it in series?
Why does a DC motor start rotating?
What is the difference between voltage and current in a DC motor?
Related questions
What is the relation between RPM current and voltage in a DC motor?
What is the relationship between load and voltage in a series DC motor?
What is the relationship between voltage and torque in a DC series motor?
What is the relationship between current, voltage, and speed in DC motors?
What is the difference between the armature current in a DC shunt motor and a DC series motor?
What is the difference between DC voltage and DC current?
AboutCareersPrivacyTermsContactLanguagesYour Ad ChoicesPress© Quora, Inc. 2024


I've been looking for something to drive herds of LEDs for portable lighting and giant clock digits. If you are going to drive this much past 3-3.5 amps, a heat sink against the square metal hybrid case is a good idea. I'm looking forward to applying this little item in some other high current applications.
The board is clearly labeled, logically laid out, thick, plated through, with construction and engineering that shows that Sparkfun knows what it's doing. So far, the guide and data sheet have allowed me to easily apply this converter to an Arduino driving ravenous LEDs.
The resistor values called for in the data sheet for the various voltages are precise. There is ample room on the back of the board to chain a couple of them together to get close to the desired value for your voltage.
If you need a higher than average current buck converter. This part is definitely recommended.
     Very useful
about 6 years ago by Member #343890  verified purchaser
I have found this power-converter very useful for driving 5V devices that require a lot of current, such as a Raspberry Pi with attached spinning disks, off 12V lead-acid batteries, that work as an UPS of sorts. The efficiency is good, and it Just Works.
With two 2.7 kiloOhms 1% resistors in parallell between TRIM and GND, this becomes. 1.35 kiloOhms and makes the regulator output 5 V.
Only caveat is the ON input really, since this drives the gate of a logic-level NMOS transistor, the voltage here shouldn't be much more than about 5 V. I used a 4.7V zener diode and a resistor to limit the voltage here.
On the other hand, when I have wanted to have a mechanism for shutting off the power, delayed after the Raspberry Pi has sent out a "shutdown request" to a separate microcontroller, having a secondary low-power 5V standby supply for this, via an LM78L05, this on/off control works great. Since the microcontroller that I use has several analog inputs, I use it for supervising various other voltages in the vicinity.
STAY IN TOUCH WITH US
Email address
Weekly product releases, special offers, and more.
YouTube
Instagram
GitHub
Facebook
Twitter
RSS
ABOUT SPARKFUN
Read Our Story
Press & Media
Success with SparkFun
SparkFun Education
Job Openings
PARTNER WITH US
See Our Partners
Become a Distributor/Reseller
Receive Volume Discounts
Explore Custom Kits
Apply for a Hardware Donation
SUPPORT
Customer Support
Purchase Orders & Payment Terms
Technical Assistance
FAQs
Contact Us
SITE INFORMATION
Terms of Service
Privacy Policy


Crane control
For overhead cranes used in industrial facilities, resistors are used to control hoisting and lowering speeds, as well as positioning the crane itself. Both wound rotor motors and DC motors are frequently used to power these cranes and hoist heavy loads, which require a careful balance of force and control.


Profile photo for Gregory Diana
Gregory Diana
Worked at University of KwaZulu-NatalAuthor has 2.4K answers and 4.9M answer views
 ·
2y
Related
How electronic speed controller control the speed of DC motor by vary the voltage or current?
With any DC motor, the only thing you have available for control is the input voltage. The only thing one may control is the flow of energy between the source and the motor and its load. One may also control the field but in many cases, it is a permanent magnet, or if wound it has a fixed excitation for ease of control.


Profile photo for Andrew Lindsey
Andrew Lindsey
Electrical Engineer (2001–present)Upvoted by
Kenneth Lundgren
, B.S. Electrical Engineering, Illinois Institute of Technology Chicago - Illinois Tech (1963)Author has 10.9K answers and 12.9M answer views
 ·
6y
Related
If more voltage is input into a DC motor, then will it increase speed before losing power?
In theory, a typical brush DC motor has a linear relationship between voltage and speed. A DC motor has a Kv number which describes the relationship between voltage applied and speed output. For example, a motor with a Kv of 1000 RPM/Volt will spin at 6000 RPM with an applied voltage of 6V, and 12000 RPM with an applied voltage of 12V.


Using a simple voltage loop we can see that the input voltage (V)


Profile photo for Michael Kutsenkow
Michael Kutsenkow
Former I Am a Retired Communications Equipment Repairman. at U.S. Air Force
 ·
6y
Related
Why does voltage increase the speed of a DC motor?
Higher voltage causes higher current flow. Higher current flow causes stronger magnetic fields in the motor. The stronger fields push the poles of the motor with greater force which causes the motor to accelerate to a higher velocity. If the voltage is too high, eddy currents will heat up the coils and generally will melt the insulation on the coil wires and short out the coils. Motor speeds are now commonly controlled by pulsating voltages that are fixed at their highest voltage and frequency levels for maximum efficiency of operation and safety to protect the motor from overheating.


Tg is electromagnetic torque


Hence,


Star-delta
The majority of induction motors are started directly on the line. However, when very large motors are started in this way, their large starting current surges can cause a voltage disturbance on the supply lines. To limit the starting current surge, some large induction motors are started at a reduced voltage before receiving their full voltage supply.


This site uses cookies to enhance your visitor experience. Continuing to use this website gives consent to cookies being used. For more information on how to disable cookies see our Privacy & Data Protection Policy


Break Away Headers - Straight
In stock PRT-00116
$1.75
     20
Female Headers
Female Headers
Out of stock PRT-00115
$1.75
     8
Break Away Male Headers - Right Angle
Break Away Male Headers - Right Angle
In stock PRT-00553
$2.25
     5
PreviousNext
Similar Items for SparkFun DC/DC Converter Breakout
PAGE 1 OF 1
SparkFun Variable Load Kit
SparkFun Variable Load Kit
Out of stock KIT-14449
     1
SparkFun Power Delivery Board - USB-C (Qwiic)
SparkFun Power Delivery Board - USB-C (Qwiic)
Out of stock DEV-15801
$26.95
     6
PreviousNext
SparkFun DC/DC Converter Breakout Product Help and Resources
SKILLS NEEDED
Core Skill: Soldering
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
1Soldering
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
Core Skill: Electrical Prototyping
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
3Electrical Prototyping
Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels
Frequently Bought Together


  * **[ Code API ](http://docs.ros.org/groovy/api/octomap_server/html) **
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:octomap_server/page:1/)
  * [ Change List ](/octomap_mapping/ChangeList)
  * [ Reviews ](/octomap_server/Reviews)


* 👍  1 reaction


* [ octree ](/questions/scope:all/sort:activity-desc/tags:octree/page:1/)


* [ occupancy_map ](/questions/scope:all/sort:activity-desc/tags:occupancy_map/page:1/)


_**[ octomap_mapping ](/octomap_mapping?distro=fuerte) ** : [ octomap
](/octomap?distro=fuerte) | octomap_server _


` map (up to fuerte) / projected_map (since fuerte) ` ( [
nav_msgs/OccupancyGrid
](http://docs.ros.org/en/api/nav_msgs/html/msg/OccupancyGrid.html) )


#  Package Summary


**Package Links**


** Used by  (4) **


benchmark for the evaluation of RGB-D slam systems. In: Proc. of
the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS),
http://cvpr.in.tum.de/data/datasets/rgbd-dataset/download
Surmann H, Nuchter A, Hertzberg J (2003) An autonomous mobile ¨
robot with a 3d laser range finder for 3d exploration and digitalization of indoor environments. Robotics and Autonomous Systems
45(3):181–198
Triebel R, Pfaff P, Burgard W (2006) Multi-level surface maps for outdoor terrain mapping and loop closing. In: Proc. of the IEEE/RSJ
Int. Conf. on Intelligent Robots and Systems (IROS)
Weise T, Wismer T, Leibe B, Van Gool L (2009) In-hand scanning with
online loop closure. In: ICCV Workshops
Whelan T, Kaess M, Fallon M, Johannsson H, Leonard J, McDonald
J (2012) Kintinuous: Spatially extended KinectFusion. Tech. rep.,
URL http://hdl.handle.net/1721.1/71756
Wilhelms J, Van Gelder A (1992) Octrees for faster isosurface generation. ACM Trans Graph 11(3):201–227
Wurm KM, Hornung A, Bennewitz M, Stachniss C, Burgard W (2010)
OctoMap: A probabilistic, flexible, and compact 3D map representation for robotic systems. In: Proc. of the ICRA 2010 Workshop on
Best Practice in 3D Perception and Modeling for Mobile Manipulation
Wurm KM, Hennes D, Holz D, Rusu RB, Stachniss C, Konolige K,
Burgard W (2011) Hierarchies of octrees for efficient 3d mapping.
In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS), San Francisco, CA, USA
Yguel M, Aycard O, Laugier C (2007a) Update policy of dense maps:
Efficient algorithms and sparse representation. In: Field and Service
Robotics, Results of the Int. Conf., FSR 2007, vol 42, pp 23–33
Yguel M, Keat CTM, Braillon C, Laugier C, Aycard O (2007b) Dense
mapping for range sensors: Efficient algorithms and sparse representations. In: Proceedings of Robotics: Science and Systems


[ ![cc-by-sa](/m/default/media/images/cc-by-sa.png?v=28)
](http://creativecommons.org/licenses/by-sa/3.0/legalcode) ROS Answers is
licensed under Creative Commons Attribution 3.0 Content on this site is
licensed under a [ Creative Commons Attribution Share Alike 3.0
](http://creativecommons.org/licenses/by-sa/3.0/legalcode) license.


Sorry, something went wrong.


Wiki: octomap_server (last edited 2020-06-03 11:42:19 by  [ Martin Pecka
](/Martin%20Pecka "Martin Pecka @
2001:718:2:1634:79c5:b037:ac2e:644f\[2001:718:2:1634:79c5:b037:ac2e:644f\]") )


##  Report a Bug


* Color for visualizing occupied cells when ~heigh_map=False, in range [0:1]


Use the octomap [ issue tracker
](https://github.com/OctoMap/octomap_mapping/issues) to report bugs or request
features. For questions (and FAQ), check [ answers.ros.org
](http://answers.ros.org/questions/scope:all/sort:activity-
desc/tags:octomap/page:1/) .


[ Documentation Status ](javascript:toggleDocStatus\(\))


  * [ catkin ](/catkin?distro=melodic)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=melodic)
  * [ nav_msgs ](/nav_msgs?distro=melodic)
  * [ nodelet ](/nodelet?distro=melodic)
  * [ octomap ](/octomap?distro=melodic)
  * [ octomap_msgs ](/octomap_msgs?distro=melodic)
  * [ octomap_ros ](/octomap_ros?distro=melodic)
  * [ pcl_conversions ](/pcl_conversions?distro=melodic)
  * [ pcl_ros ](/pcl_ros?distro=melodic)
  * [ roscpp ](/roscpp?distro=melodic)
  * [ sensor_msgs ](/sensor_msgs?distro=melodic)
  * [ std_msgs ](/std_msgs?distro=melodic)
  * [ std_srvs ](/std_srvs?distro=melodic)
  * [ visualization_msgs ](/visualization_msgs?distro=melodic)


_**[ octomap_mapping ](/octomap_mapping?distro=noetic) ** : octomap_server _


* [ GitHub Sponsors  Fund open source developers  ](/sponsors)


It's happening because the dynamic rqt config is boxing the cloud and map it
to -100 to 100


** Dependencies  (14) **


[ Powered by Askbot version 0.10.2 ](http://askbot.com)


* Whether topics are published latched or only once per change. For maximum performance when building a map (with frequent updates), set to false. When set to true, on every map change all topics and visualizations will be created.


* **fuerte:** _Documentation generated on July 09, 2013 at 10:21 AM_


#  octomap_server pointcloud_[min|max_z] and occupancy_[min|max]_z parameters
only allow values up to -/+100  #90


` ~ground_filter/plane_distance ` ( ` float ` , default: 0.07)


** Used by  (3) **


Documented


{{ message }}


memory usage. We will now discuss these three requirements in detail.
– Probabilistic representation: To create 3D maps, mobile robots sense the environment by taking 3D range
measurements. Such measurements are afflicted with
uncertainty: Typically, the error in the range measurements is in the order of centimeters. But there may also
be seemingly random measurements that are caused by
reflections or dynamic obstacles. When the task is to
create an accurate model of the environment from such
noisy measurements, the underlying uncertainty has to
be taken into account probabilistically. Multiple uncertain measurements can then be fused into a robust estimate of the true state of the environment. Another important aspect is that probabilistic sensor fusion allows
for the integration of data from multiple sensors and of
multiple robots.
– Modeling of unmapped areas: In autonomous navigation tasks, a robot can plan collision-free paths only for
those areas that have been covered by sensor measurements and detected to be free. Unmapped areas, in contrast, need to be avoided and for this reason the map
has to represent such areas. Furthermore, the knowledge
2 Armin Hornung et al.
Fig. 1 3D representations of a tree scanned with a laser range sensor (from left to right): Point cloud, elevation map, multi-level surface map, and
our volumetric (voxel) representation. Please note that our volumetric representation explicitly models free space but that for clarity only occupied
volumes are visualized.
about unmapped areas is essential during exploration.
When maps are created autonomously, the robot has to
plan its actions so that measurements are taken in previously unmapped areas.
– Efficiency: The map is a central component of any autonomous system because it is used during action planning and execution. For this reason, the map needs to
be efficient with respect to access times but also with
respect to memory consumption. From a practical point
of view, memory consumption is often the major bottleneck in 3D mapping systems. Therefore, it is important
that the model is compact in memory so that large environments can be mapped, a robot can keep the model
in its main memory, and it can be transmitted efficiently
between multiple robots.
Several approaches have been proposed to model 3D environments in robotics. As an illustration, we compare our
approach to three common mapping approaches – a visualization of the results is given in Fig. 1. In the example,
3D measurements are represented using point clouds, elevation maps (Hebert et al., 1989), multi-level surface maps
(Triebel et al., 2006), and in a volumetric way using our
framework. None of the previous approaches fulfill all of
the requirements we set out above. Point clouds store large
amounts of measurement points and hence are not memoryefficient. They furthermore do not allow to differentiate between obstacle-free and unmapped areas and provide no
means of fusing multiple measurements probabilistically.
Elevation maps and multi-level surface maps are efficient
but do not represent unmapped areas either. Most importantly, these approaches cannot represent arbitrary 3D environments, such as the branches of the tree in the example.
In this work we present OctoMap, an integrated framework based on octrees for the representation of threedimensional environments. In our framework, we combine
the advantages of previous approaches to 3D environment


` cloud_in ` ( [ sensor_msgs/PointCloud2
](http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud2.html) )


##  Overview


[ ](https://github.com/)


Continuous Integration


[ Creating a web interface for a ROS robot ](/question/288585/creating-a-web-
interface-for-a-ros-robot/)


####  Services


[ ![ gravatar image]() ]() [ ]() (  2024-04-14 23:33:47 -0500  )  edit


The different projected maps shall be used for path planning of an UAV


##  Comments


[ Problem with 3D lidar SLAM ](/question/402057/problem-with-3d-lidar-slam/)


#  Package Summary


Occupancy range
KLD
FR-079 corridor (5 cm res.)
KLD
Memory
Memory with clamping
[0.12:0.97]
KLD with clamping [0.12:0.97] 30
40
50
60
Memory [MB]
[0:
1]
[0.05:
0.95]
[0.1:
0.9]
[0.15:
0.85]
[0.2:
0.8]
[0.25:
0.75]
[0.3:
0.7]
[0.35:
0.65]
[0.4:
0.6]
0
2
4
6
8
·105
Occupancy range
KLD
Freiburg campus (20 cm res.)
KLD


[ __ ](/questions/) |


  * **[ Code API ](http://ros.org/doc/electric/api/octomap_server/html) **
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:octomap_server/page:1/)
  * [ Change List ](/octomap_mapping/ChangeList)
  * [ Reviews ](/octomap_server/Reviews)


` ~frame_id ` ( ` string ` , default: /map)


**Package Links**


` ~sensor_model/[min|max] ` ( ` float ` , default: 0.12 / 0.97)


###  Footer navigation


* Whether visualization should encode height with different colors


` ~ground_filter/angle ` ( ` float ` , default: 0.15)


Fig. 10 A laser scanner sweeps over a flat surface at a shallow angle by
rotating. A cell measured occupied in the first scan (top) is updated as
free in the following scan (bottom) after the sensor rotated. Occupied
cells are visualized as gray boxes, free cells are visualized in white.
Fig. 11 A simulated noise-free 3D laser scan (left) is integrated into
our 3D map structure. Sensor sweeps at shallow angles lead to undesired discretization effects (center). By updating each volume at most
once, the map correctly represents the environment (right). For clarity,
only occupied cells are shown.
The clamping thresholds are set to lmin = −2 and lmax = 3.5,
corresponding to the probabilities of 0.12 and 0.97. We experimentally determined these values to work best for our
use case of mapping mostly static environments with laser
range finders, while still preserving map updatability for occasional changes. By adapting these changeable thresholds,
a stronger compression can be achieved. As we will evaluate
in Sect. 5.6, there is a trade-off between map confidence and
compression.
Discretization effects of the ray-casting operation can
lead to undesired results when using a sweeping laser range
finder. During a sensor sweep over flat surfaces at shallow
angles, volumes measured occupied in one 2D scan may be
marked as free in the ray-casting of following scans. This
effect is illustrated in Fig. 10. Such undesired updates usually creates holes in the modeled surface, as shown in the
example in Fig. 11. To overcome this problem, we treat a
collection of scan lines in a sensor sweep from the same location as single 3D point cloud in our mapping approach.
Since measurements of laser scanners usually result from
reflections at obstacle surfaces, we ensure that the voxels
corresponding to endpoints are updated as occupied. More
precisely, whenever a voxel is updated as occupied according to Eq. (7), it is not updated as free in the same measurement update of the map. By updating the map in this way,
the described effect can be prevented and the environment is
represented accurately, as can be seen in Fig. 11 (right).
OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees 11
5.2 3D Models from Real Sensor Data
In this experiment, we demonstrate the ability of our approach to model real-world environments. A variety of different datasets has been used. Note that the free space was
explicitly modeled in the experiments but is not shown in
the figures for clarity.
The indoor dataset called FR-079 corridor was recorded
using a Pioneer2 AT platform equipped with a SICK LMS
laser range finder on a pan-tilt unit. We reduced odometry
errors by applying a 3D scan matching approach. The robot
traversed the corridor of building 079 at the Freiburg campus three times, resulting in 66 3D scans with 6 million end
points in total. When processing this dataset, we limited the


##  ROS Node API


    * [ Topics ](/topics)
    * [ Trending ](/trending)
    * [ Collections ](/collections)


Memory
Memory with clamping
[0.12:0.97]
KLD with clamping
[0.12:0.97] 80
100
120
Memory [MB]
[0:
1]
[0.05:
0.95]
[0.1:
0.9]
[0.15:
0.85]
[0.2:
0.8]
[0.25:
0.75]
[0.3:
0.7]
[0.35:
0.65]
[0.4:
0.6]
0
1
2
·106
Occupancy range
KLD
New College (20 cm res.)
KLD
Memory
Memory with clamping [0.12:0.97]
KLD with clamping [0.12:0.97] 40
60
80
Memory [MB]


  1. Overview
  2. ROS Node API
    1. dynamic_reconfigure API
    2. octomap_server
      1. Subscribed Topics
      2. Published Topics
      3. Services
      4. Parameters
      5. Required tf Transforms
    3. octomap_server_multilayer
    4. octomap_saver
  3. Report a Bug


[ ALL ](/questions/scope:all/sort:activity-desc/page:1/) [ UNANSWERED
](/questions/scope:unanswered/sort:answers-asc/page:1/)


None yet


    * [ Enterprise ](/enterprise)
    * [ Teams ](/team)
    * [ Startups ](/enterprise/startups)
    * [ Education  ](https://education.github.com)


Email Address


Continuous Integration


#  Package Summary


` ~clear_bbx ` ( [ octomap_msgs/BoundingBoxQuery
](http://docs.ros.org/en/api/octomap_msgs/html/srv/BoundingBoxQuery.html) )


  * [ catkin ](/catkin?distro=indigo)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=indigo)
  * [ nav_msgs ](/nav_msgs?distro=indigo)
  * [ nodelet ](/nodelet?distro=indigo)
  * [ octomap ](/octomap?distro=indigo)
  * [ octomap_msgs ](/octomap_msgs?distro=indigo)
  * [ octomap_ros ](/octomap_ros?distro=indigo)
  * [ pcl_conversions ](/pcl_conversions?distro=indigo)
  * [ pcl_ros ](/pcl_ros?distro=indigo)
  * [ roscpp ](/roscpp?distro=indigo)
  * [ sensor_msgs ](/sensor_msgs?distro=indigo)
  * [ std_msgs ](/std_msgs?distro=indigo)
  * [ std_srvs ](/std_srvs?distro=indigo)
  * [ visualization_msgs ](/visualization_msgs?distro=indigo)


[ ![ros.org](/custom/images/ros_org.png) ](/) |  [ About
](http://www.ros.org/about-ros) | [ Support ](/Support) | [ Discussion Forum
](http://discourse.ros.org/) | [ Index ](http://index.ros.org/) | [ Service
Status ](http://status.ros.org/) | [ ros @ Robotics Stack Exchange
](https://robotics.stackexchange.com/questions/tagged/ros)
---|---
![](/custom/images/menu_left.png) [
![Documentation](/custom/images/menu_documentation.png) ](/)
![](/custom/images/menu_spacer.png) [ ![Browse
Software](/custom/images/menu_browse_software.png)
](https://index.ros.org/packages) ![](/custom/images/menu_spacer.png) [
![News](/custom/images/menu_news.png) ](https://discourse.ros.org/c/general)
![](/custom/images/menu_spacer.png) [
![Download](/custom/images/menu_download.png) ](/ROS/Installation)
![](/custom/images/menu_right.png)

  * [ octomap_server ](/octomap_server)


  * [ Notifications ](/login?return_to=%2FOctoMap%2Foctomap_mapping)
  * [ Fork  267  ](/login?return_to=%2FOctoMap%2Foctomap_mapping)
  * [ Star  308  ](/login?return_to=%2FOctoMap%2Foctomap_mapping)


* Open Source


    ~/catkin_ws$ rosparam get /octomap_server/pointcloud_min_z
    -20.0
    ~/catkin_ws$ rosparam get /octomap_server/pointcloud_max_z
    20.0


** Dependencies  (12) **


octomap_server loads a 3D map (as Octree-based OctoMap) and distributes it to
other nodes in a compact binary format. It also allows to incrementally build
3D OctoMaps, and provides map saving in the node octomap_saver.


My launch file looks like this.


[ Hi there! Please sign in ](/account/signin/?next=/question/297045/multiple-
projected-maps-from-octomap-server-with-different-heights/) [ help ](/help/
"help")


Seen: **447 times**


  * [ source ubuntu bionic ](https://build.ros.org/view/Msrc_uB/job/Msrc_uB__octomap_server__ubuntu_bionic__source)
  * [ binary ubuntu bionic amd64 ](https://build.ros.org/view/Mbin_uB64/job/Mbin_uB64__octomap_server__ubuntu_bionic_amd64__binary)
  * [ binary ubuntu bionic armhf ](https://build.ros.org/view/Mbin_ubhf_uBhf/job/Mbin_ubhf_uBhf__octomap_server__ubuntu_bionic_armhf__binary)
  * [ binary ubuntu bionic arm64 ](https://build.ros.org/view/Mbin_ubv8_uBv8/job/Mbin_ubv8_uBv8__octomap_server__ubuntu_bionic_arm64__binary)
  * [ devel ubuntu bionic amd64 ](https://build.ros.org/view/Mdev/job/Mdev__octomap_mapping__ubuntu_bionic_amd64)
  * [ doc ](https://build.ros.org/view/Mdoc/job/Mdoc__octomap_mapping__ubuntu_bionic_amd64)


Released


[ Sign in
](/login?return_to=https%3A%2F%2Fgithub.com%2FOctoMap%2Foctomap_mapping%2Fissues%2F90)


[ ![](/custom/images/brought_by_horiz.png) ](https://www.openrobotics.org/)


  * [ mapping_msgs ](/mapping_msgs?distro=diamondback)
  * [ nav_msgs ](/nav_msgs?distro=diamondback)
  * [ octomap ](/octomap?distro=diamondback)
  * [ octomap_ros ](/octomap_ros?distro=diamondback)
  * [ pcl_ros ](/pcl_ros?distro=diamondback)
  * [ visualization_msgs ](/visualization_msgs?distro=diamondback)


* Maximum range in meter for inserting point cloud data when dynamically building a map. Limiting the range to something useful (e.g. 5m) prevents spurious erroneous points far away from the robot.


By clicking “Sign up for GitHub”, you agree to our [ terms of service
](https://docs.github.com/terms) and [ privacy statement
](https://docs.github.com/privacy) . We’ll occasionally send you account
related emails.


####  ROS 2 Documentation


[ Sign up for free ](/join?source=comment-repo) **to join this conversation on
GitHub** . Already have an account? [ Sign in to comment
](/login?return_to=https%3A%2F%2Fgithub.com%2FOctoMap%2Foctomap_mapping%2Fissues%2F90)


  *[
              2018-07-11 15:17:47 -0500
             ]: 2018-07-11 15:17:47 -0500
  *[
        2018-07-11 15:17:47 -0500
       ]: 2018-07-11 15:17:47 -0500
  *[
        2024-04-14 23:33:47 -0500
       ]: 2024-04-14 23:33:47 -0500


the map, and using these skipped scans to evaluate the percentage of correctly mapped cells.
The results in Table 1 show that our mapping approach
accurately represents the environment. The remaining error
is most likely due to sensor noise, discretization effects, or a
not completely perfect scan alignment. The cross-validation
results only lose little accuracy, which demonstrates that the
probabilistic sensor model yields realistic and predictive results.
5.4 Memory Consumption
In this experiment, we evaluate the memory consumption
of our approach. Several datasets were processed at various tree resolutions. We analyzed the memory usage of our
representation with and without performing octree compression, as well as the maximum-likelihood compression that
converts each node to be either completely free or occupied.
For comparison, we also determined the amount of memory that would be required by an optimally aligned 3D grid
of minimal size that is initialized linearly in memory. According to Sect. 4.1, the memory consumption of occupancy
stored in an octree on a 32-bit architecture is given by
memtree = ninner ×40B+nleafs ×8B , (8)
where ninner is the number of inner nodes and nleafs the number of leaf nodes. The size of the minimal 3D grid storing the
same information (one float for the occupancy probability)
is given by
memgrid =
x×y×z
r
3
4B , (9)
where x, y,z is the size of the map’s minimal bounding box
in each dimension and r is the map resolution.
We furthermore wrote each map to disk using the full
probabilistic model and the compressed binary format described in Sect. 4.3, and evaluated the resulting file sizes.
The memory usage for exemplary resolutions is given
in Table 2. It can be seen that high compression ratios can
be achieved especially in large outdoor environments. Here,
12 Armin Hornung et al.
Fig. 12 3D map of the FR-079 corridor dataset, as seen from the top. The structure of the adjacent rooms has been partially observed through the
glass doors (size of the scene: 43.7m×18.2m×3.3m).
Fig. 13 Resulting octree maps of two outdoor environments at 0.2 m resolution. For clarity, only occupied volumes are shown with height visualized by a color (gray scale) coding. Top: Freiburg campus dataset (size of the scene: 292m×167m×28m), bottom: New College dataset (size of
the scene: 250m×161m×33m).
OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees 13
Memory w. octree compression [MB] File size [MB]
Map dataset Mapped area [m3
] Res. [cm] Mem. 3D grid [MB] None Pruned Max. likelih. Full Lossy


Copy link


** Jenkins jobs  (6) **


* Minimum and maximum height of occupied cells to be consider in the final map. This ignores all occupied voxels outside of the interval when sending out visualizations and collision maps, but will not affect the actual octomap representation.


` octomap_binary ` ( [ octomap_msgs/Octomap
](http://docs.ros.org/en/api/octomap_msgs/html/msg/Octomap.html) )


melodic  noetic  _Show EOL distros:_


You signed in with another tab or window. [ Reload ]() to refresh your
session.  You signed out in another tab or window. [ Reload ]() to refresh
your session.  You switched accounts on another tab or window. [ Reload ]() to
refresh your session.  Dismiss alert


Skip to content


[ **asked 2018-07-11 15:17:47 -0500  ** ](/questions/297045/revisions/)


_**[ octomap_mapping ](/octomap_mapping?distro=diamondback) ** : [ octomap
](/octomap?distro=diamondback) | [ octomap_ros
](/octomap_ros?distro=diamondback) | octomap_server _


**octomap_server** and **octomap_server_multilayer** offer a
dynamic_reconfigure interface to change the displayed map resolution on the
fly (since version 0.3.8). Note that this will not change the resolution of
the underlying [ OctoMap ](/OctoMap) , but only of the published marker /
collision topics (e.g. for visualization).


* The centers of all occupied voxels as point cloud, useful for visualization. Note that this will have gaps as the points have no volumetric size and OctoMap voxels can have different resolutions! Use the MarkerArray topic instead.


** Used by  (3) **


  * Maintainer status: maintained
  * Maintainer: Armin Hornung <hornunga AT informatik.uni-freiburg DOT de>
  * Author: Armin Hornung
  * License: BSD
  * Bug / feature tracker: [ https://github.com/OctoMap/octomap_mapping/issues ](https://github.com/OctoMap/octomap_mapping/issues)
  * Source: git [ https://github.com/OctoMap/octomap_mapping.git ](https://github.com/OctoMap/octomap_mapping) (branch: hydro-devel)


* [ Login ](/action/login/octomap_server?action=login)


##  Related questions


###  octomap_saver


hand, either the average occupancy
¯l(n) = 1
8
8
∑
i=1
L(ni) (5)
or the maximum occupancy
ˆl(n) = max
i
L(ni) (6)
can be used, where L(n) returns the current log-odds occupancy value of a node n. Using the maximum child occupancy to update inner nodes can be regarded a conservative
strategy which is well suited for robot navigation. By assuming that a volume is occupied if any part of it has been
measured occupied, collision-free paths can be planned and
for this reason the maximum occupancy update is used in
our system. Note that in an even more conservative setting,
L(n) can be defined to return a positive occupancy probability for unknown cells as well. An example of an octree
queried for occupied voxels at several resolutions is shown
in Fig. 3.
3.4 Octree Map Compression
In Sect. 3.1, we explained how tree pruning can reduce the
amount of redundant information in octrees with discrete
occupancy states in which a voxel can be either occupied
or free. The same technique can also be applied in maps
that use probabilistic occupancy estimates to model occupied and free space. In general, however, one cannot expect
the occupancy probability of neighboring nodes to be identical, even if both voxel are occupied by the same physical
obstacle. Sensor noise and discretization errors can lead to
different probabilities and therefore interfere with compression schemes that rely on identical node information. A possible solution to this problem is to apply a threshold on the
voxel probability, for example 0.5, and in this way generate a discrete state estimation as suggested by Fairfield et al.
(2007). With that approach, however, individual probability
estimates cannot be recovered after the tree has been pruned.
In our approach, we achieve map compression by applying the clamping update policy given in Eq. (4). Whenever the log-odds value of a voxel reaches either the lower
bound lmin or the upper bound lmax, we consider the node as
stable in our approach. Intuitively, stable nodes have been
measured free or occupied with high confidence. In a static
environment, all voxels will converge to a stable state after
a sufficient number of measurements have been integrated.
With the parameters chosen in our experiments, for example, five agreeing measurements are sufficient to render an
unknown voxel into a stable voxel. If all children of an inner tree node are stable leaf nodes with the same occupancy
state, then the children can be pruned. Should future measurements be integrated that contradict the state of the corresponding inner node, then its children are regenerated and


ROS Resources: [ Documentation ](http://wiki.ros.org/) | [ Support
](http://wiki.ros.org/Support) | [ Discussion Forum
](http://discourse.ros.org/) | [ Index ](http://index.ros.org/) | [ Service
Status ](http://status.ros.org/) | [ ros @ Robotics Stack Exchange
](https://robotics.stackexchange.com/questions/tagged/ros)
---

_Attention:_ Answers.ros.org is deprecated as of August the 11th, 2023. Please
visit [ robotics.stackexchange.com ](http://robotics.stackexchange.com) to ask
a new question. This site will remain online in read-only mode during the
transition and into the foreseeable future. Selected questions and answers
have been migrated, and redirects have been put in place to direct users to
the corresponding questions on Robotics Stack Exchange. Additional details are
[ available here ](https://discourse.ros.org/t/ros-and-gazebo-answers-
migration-to-robotics-stack-exchange-process/31494) .


` ~color/[r/g/b/a] ` ( ` float ` )


` ~base_frame_id ` ( ` string ` , default: base_footprint)


[ edit ](/questions/297045/edit/) [ retag ](/s/questions/297045/retag/) flag
offensive  [ close ](/questions/297045/close/) merge  delete


  * **[ Code API ](http://docs.ros.org/en/noetic/api/octomap_server/html) **
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:octomap_server/page:1/)
  * [ Changelog ](http://docs.ros.org/en/noetic/changelogs/octomap_server/changelog.html)
  * [ Change List ](/octomap_mapping/ChangeList)
  * [ Reviews ](/octomap_server/Reviews)


_**[ octomap_mapping ](/octomap_mapping?distro=melodic) ** : octomap_server _


be lost in a maximum likelihood encoding. In these cases,
we encode nodes by storing their data (occupancy and additional data) and eight bits per node which specify whether
a child node exists. This, however, results in considerably
larger files as we will show in the experiments.
Note that, analog to the octree representation in memory, the serialized stream does not contain any actual 3D
coordinates. To reconstruct a map, only the location of the
root node needs to be known. All other spatial relationships
between the nodes are implicitly stored in the encoding.
4.4 Our OctoMap Implementation
OctoMap is available as a self-contained C++ library. It is
released under the BSD-license and can be obtained from
http://octomap.github.com. The source code is thoroughly
documented and the library uses CMake to support several
platforms (Linux and Mac OS X with GCC, Windows with
Fig. 9 The OctoMap visualization application octovis
MinGW or Visual Studio). Within the Robot Operating System (ROS), OctoMap is available as a pre-compiled Debian
package, e.g., for the Ubuntu distribution1
. Further ROS integration is available in the packages octomap ros and octomap msgs.
OctoMap can be easily integrated into any other framework by compiling and linking against it with the help
of pkg-config, or with the find package mechanism in the
CMake build system.
An OpenGL-based 3D visualization application is available along with the library to view stored octree files and to
incrementally build up maps from range data, which eases
troubleshooting and map data inspection (see Fig. 9). It also
offers basic editing functionality.
4.4.1 Integrating Sensor Measurements
Individual range measurements are integrated using raycasting by calling the method insertRay(·) of the occupancy
octree class OcTree. This updates the end point of the measurement as occupied while all other voxels along a ray to
the sensor origin are updated as free.
Point clouds, e.g., from 3D laser scans or stereo cameras
are integrated using insertScan(·). This batch operation has
been optimized to be more efficient than tracing each single
ray from the origin.
Finally, a single node in the octree can be updated with
a point measurement by calling updateNode(·).
4.4.2 Accessing Data
Individual octree nodes can be accessed by searching for
their coordinate. For efficient batch queries, our implementation provides iterators to traverse the octree analogous to a
standard C++ container class. With these iterators, all nodes,
1 http://www.ros.org/wiki/octomap


[ getCurrentPose take too long time ](/question/359342/getcurrentpose-take-
too-long-time/)


[
![@ndugdale](https://avatars.githubusercontent.com/u/67626400?s=80&u=a5f441c6a921a150a4078e5631187d719d4b73f3&v=4)
](/ndugdale)


Hello, is the pointcloud_min/max_z reflects the limit height of the points
cloud to be projected in the occypancy grid map ?

---

All reactions


1 follower


  * [ jsk_pcl_ros ](/jsk_pcl_ros?distro=melodic)
  * [ jsk_pcl_ros_utils ](/jsk_pcl_ros_utils?distro=melodic)
  * [ octomap_mapping ](/octomap_mapping?distro=melodic)


**Package Links**


** Dependencies  (14) **


Additional navigation options


|  |  gen  .  add  (  "pointcloud_min_z"  ,  double_t  ,  0  ,  "Minimum
height of points to consider for insertion"  ,  \-  100  ,  \-  100  ,  100  )
---|---

All reactions


All reactions


  * [ autonomous_mapping ](/autonomous_mapping?distro=fuerte)
  * [ next_best_view ](/next_best_view?distro=fuerte)
  * [ pcl_cloud_tools ](/pcl_cloud_tools?distro=fuerte)
  * [ pcl_to_octree ](/pcl_to_octree?distro=fuerte)


** Used by  (4) **


` ~sensor_model/[hit|miss] ` ( ` float ` , default: 0.7 / 0.4)


None yet


  * [ arm_navigation_msgs ](/arm_navigation_msgs?distro=fuerte)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=fuerte)
  * [ nav_msgs ](/nav_msgs?distro=fuerte)
  * [ nodelet ](/nodelet?distro=fuerte)
  * [ octomap ](/octomap?distro=fuerte)
  * [ octomap_ros ](/octomap_ros?distro=fuerte)
  * [ pcl_ros ](/pcl_ros?distro=fuerte)
  * [ sensor_msgs ](/sensor_msgs?distro=fuerte)
  * [ std_msgs ](/std_msgs?distro=fuerte)
  * [ std_srvs ](/std_srvs?distro=fuerte)
  * [ visualization_msgs ](/visualization_msgs?distro=fuerte)


3 participants


[ Search syntax tips ](https://docs.github.com/search-github/github-code-
search/understanding-github-code-search-syntax)


[ failed to process qt_gui_cpp ](/question/283911/failed-to-process-
qt_gui_cpp/)


Copy link


[ subscribe to rss feed ](/feeds/question/297045/ "subscribe to the rss feed")


  * Author: Armin Hornung
  * License: BSD
  * Repository: [ alufr-ros-pkg ](/alufr-ros-pkg)
  * Source: svn [ https://alufr-ros-pkg.googlecode.com/svn/tags/stacks/octomap_mapping/octomap_mapping-0.3.4 ](https://alufr-ros-pkg.googlecode.com/svn/tags/stacks/octomap_mapping/octomap_mapping-0.3.4)


Please note: ROS Answers requires javascript to work properly, please enable
javascript in your browser, [ here is how
](https://www.google.com/support/bin/answer.py?answer=23852)


Documented


[ OctoMap ](/OctoMap) /  **[ octomap_mapping ](/OctoMap/octomap_mapping) **
Public


Last updated: **Jul 11 '18**


[ See octomap_server on index.ros.org for more info including aything ROS 2
related. ](https://index.ros.org/p/octomap_server)


  * [ source ubuntu focal ](https://build.ros.org/view/Nsrc_uF/job/Nsrc_uF__octomap_server__ubuntu_focal__source)
  * [ binary ubuntu focal amd64 ](https://build.ros.org/view/Nbin_uF64/job/Nbin_uF64__octomap_server__ubuntu_focal_amd64__binary)
  * [ binary ubuntu focal armhf ](https://build.ros.org/view/Nbin_ufhf_uFhf/job/Nbin_ufhf_uFhf__octomap_server__ubuntu_focal_armhf__binary)
  * [ binary ubuntu focal arm64 ](https://build.ros.org/view/Nbin_ufv8_uFv8/job/Nbin_ufv8_uFv8__octomap_server__ubuntu_focal_arm64__binary)
  * [ devel ubuntu focal amd64 ](https://build.ros.org/view/Ndev/job/Ndev__octomap_mapping__ubuntu_focal_amd64)
  * [ doc ](https://build.ros.org/view/Ndoc/job/Ndoc__octomap_mapping__ubuntu_focal_amd64)


cope with sensor noise. In contrast to the previous fixed-size
voxel grid, the new implementation allows for an initially
unbounded workspace, the integration of data from multiple
sensors, and it is more memory-efficient.
5 http://www.ros.org/wiki/humanoid localization
6 http://www.ros.org/wiki/collider
16 Armin Hornung et al.
6.3 Navigation in Cluttered Environments
OctoMap was furthermore used to create a navigation module for mobile manipulation. In this project, a PR2 robot
picked up large objects from one table with two arms and
carried it to another table through narrow passages (Hornung et al., 2012). The system integrates 3D sensor data
in OctoMap. The resulting 3D occupancy map is then used
to perform collision checks based on the robot’s full kinematic configuration and the attached objects. Multi-layered
projected 2D maps and an anytime planner using motion primitives allow for planning in almost real time with
bounded sub-optimality. The navigation system and incremental mapping framework based on OctoMap are both
available open-source in ROS7
.
7 Conclusion
In this paper, we presented OctoMap, an open source framework for three-dimensional mapping. Our approach uses
an efficient data structure based on octrees that enables a
compact memory representation and multi-resolution map
queries. Using probabilistic occupancy estimation, our approach is able to represent volumetric 3D models that include free and unknown areas. The proposed approach uses
a bounded per-volume confidence that allows for a lossless compression scheme and leads to substantially reduced
memory usage. We evaluated our approach with various
real-world data sets. The results demonstrate that our approach is able to model the environment in an accurate way
and, at the same time, minimizes memory requirements.
OctoMap can easily be integrated into robotic systems
and has already been successfully applied in a variety of
robotic projects. The implementation is available as BSDlicensed C++ source code. Data sets are available online to
verify our experimental results and to compare against them.
Acknowledgements The authors would like to thank J. Muller, ¨
S. Oßwald, R.B. Rusu, R. Schmitt, and C. Sprunk for the fruitful discussions and their contributions to the OctoMap library.
References
Amanatides J, Woo A (1987) A fast voxel traversal algorithm for ray
tracing. In: Proceedings of Eurographics, Amsterdam, The Netherlands
Blodow N, Goron L, Marton Z, Pangercic D, Ruhr T, Tenorth M, Beetz
M (2011) Autonomous semantic mapping for robots performing everyday manipulation tasks in kitchen environments. In: Proc. of the
IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
7 http://www.ros.org/wiki/3d navigation
and http://www.ros.org/wiki/octomap server


maximum range of the laser beams to 10 m. This removes
stray measurements outside of the building which were observed through windows. Figure 12 shows the resulting map.
A fairly large outdoor dataset was recorded at the computer science campus in Freiburg4
. It consists of 81 dense
3D scans covering an area of 292m × 167m along a trajectory of 723 m. This dataset contains a total of 20 million end points. In a further experiment, we used laser range
data of the New College data set (Smith et al., 2009) (Epoch
C, 14 million end points in total). This data was recorded
in a large-scale outdoor environment with two fixed laser
scanners sweeping to the left and right side of the robot
as it advances. For this dataset, an optimized estimate of
the robot’s trajectory generated by visual odometry was
used (Sibley et al., 2009). The resulting outdoor maps are
shown in Fig. 13.
Finally, we integrated data of the freiburg1 360 RGBDdataset into our map representation with a total of 210
million end points from the Microsoft Kinect sensor (see
Sect. 3.5.1). The final map, visualized in Fig. 5, represents
an office environment at a resolution of 2 cm. In this map,
we additionally stored per-voxel color information.
5.3 Map Accuracy
This experiment demonstrates how accurate a 3D map represents the data that was used to build that map. Note that this
particular evaluation is independent of the underlying octree structure since our mapping approach is able to model
the same data as a 3D grid. We measure the accuracy as
the percentage of correctly mapped cells in all 3D scans. A
3D map cell counts as correctly mapped, if it has the same
maximum-likelihood state (free or occupied) in the map and
the evaluated 3D scan. The scan is hereby treated as if it
were inserted into the already-built map, i.e., endpoints must
be occupied and all cells along a ray between the sensor and
4 Courtesy of B. Steder, available at
http://ais.informatik.uni-freiburg.de/projects/datasets/fr360/
Map dataset Accuracy Cross-validation
FR-079 corridor (5 cm) 97.27% 96.00%
Freiburg campus (10 cm) 97.89% 95.80%
New College (Ep. C) (10 cm) 98.79% 98.46%
Table 1 Map accuracy and cross-validation as percentage of correctly
mapped cells between evaluated 3D scans and the built map. For the
accuracy, we used all scans for map construction and evaluation. For
cross-validation, we used 80% of all scans to build the map, and the
remaining 20% for evaluation.
the endpoint must be free. As a second measure, we crossvalidate the map by skipping each 5th scan when building


* Clears a region in the 3D occupancy map, setting all voxels in the region to "free"


become prohibitive. Furthermore, the extent of the mapped
area needs to be known beforehand or costly copy operations
need to be performed every time the map area is expanded.
A discretization of the environment can be avoided
by storing 3D range measurements directly. The occupied
space in the environment is then modeled by the 3D point
clouds returned by range sensors such as laser range finders or stereo cameras. This point cloud approach has been
used in several 3D SLAM systems such as those presented
by Cole and Newman (2006) as well as in the SLAM approach of Nuchter et al. ¨ (2007). The drawbacks of this
method are that neither free space nor unknown areas are
modeled and that sensor noise and dynamic objects cannot
be dealt with directly. Thus, point clouds are only suitable
for high precision sensors in static environments and when
unknown areas do not need to be represented. Furthermore,
the memory consumption of this representation increases
with the number of measurements which is problematic as
there is no upper bound.
If certain assumptions about the mapped area can be
made, 2.5D maps are sufficient to model the environment.
Typically, a 2D grid is used to store the measured height for
each cell. In its most basic form, this results in an elevation
map where the map stores exactly one value per cell (Hebert
et al., 1989). One approach in which such maps have been
demonstrated to be sufficient is the outdoor terrain navigation method described by Hadsell et al. (2009). Whenever
there is a single surface that the robot uses for navigation,
an elevation map is sufficient to model the environment,
since overhanging obstacles that are higher than the vehicle, such as trees, bridges or underpasses, can be safely ignored. The strict assumption of a single surface can be relaxed by allowing multiple surfaces per cell (Triebel et al.,
2006; Pfaff et al., 2007), or by using classes of cells which
correspond to different types of structures (Gutmann et al.,
2008). A general drawback of most 2.5D maps is that they
do not represent the environment in a volumetric way but
discretize it in the vertical dimension based on the robot’s
height. While this is sufficient for path planning and navigation with a fixed robot shape, the map does not represent the
actual environment, e.g. for localization.
To overcome this problem, a related approach was proposed by Ryde and Hu (2010). The approach stores a list of
occupied voxels for each cell in a 2D grid. Although this representation is volumetric, it does not differentiate between
free and unknown volumes. Dryanovski et al. (2010) store
lists of occupied and free voxels for each 2D cell in their
Multi-Volume Occupancy Grid approach. In contrast to our
approach, however, the map extent needs to be known beforehand, map updates are more computationally involved,


Already on GitHub? [ Sign in
](/login?return_to=%2FOctoMap%2Foctomap_mapping%2Fissues%2Fnew%2Fchoose) to
your account


[ Which quadrotor has the best ROS support? ](/question/9101/which-quadrotor-
has-the-best-ros-support/)


##  Question Tools


_**[ octomap_mapping ](/octomap_mapping?distro=kinetic) ** : octomap_server _


No branches or pull requests


###  octomap_server_multilayer


Include my email address so I can be contacted


Continuous Integration


Documented


[ PSimacek ](/users/36384/psimacek/)
11  ●  1  ●  1  ●  2


* The complete maximum-likelihood occupancy map as compact OctoMap binary stream, encoding free and occupied space.


|  [ Ask Your Question ](/questions/ask/)
---|---|---|---

1


####  Subscribed Topics


Clear


Jump to bottom


    * [ CI/CD & Automation ](/solutions/ci-cd/)
    * [ DevOps ](/solutions/devops/)
    * [ DevSecOps  ](https://resources.github.com/devops/fundamentals/devsecops/)


* **groovy:** _Documentation generated on October 06, 2014 at 02:56 AM_


  * **[ Code API ](http://ros.org/doc/fuerte/api/octomap_server/html) **
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:octomap_server/page:1/)
  * [ Change List ](/octomap_mapping/ChangeList)
  * [ Reviews ](/octomap_server/Reviews)


However, if the parameter is set to be greater than -/+100, it appears to be
reset to -/+100. Is this the intended function? The package summary [ here
](http://wiki.ros.org/octomap_server) suggests that the intended default value
for these parameters are -/+ infinity.


* The complete maximum-likelihood occupancy map as compact OctoMap binary stream, encoding free and occupied space. The full message contains the complete probabilities and all additional data stored in the tree. See [ octomap_msgs ](/octomap_msgs) for deserializing the message.


compilers align member data in memory for runtime efficiency, that is, the data of a node is padded to be multiples
of one word large (4 byte on a 32-bit architecture). 64-bit architectures can address large amounts of memory at the cost
of pointers and words having twice the size. On such architectures, the memory size of inner nodes increases to 80 byte
and the size of leaf nodes to 16 byte. Note that the actual size
of the data structure (76 byte for inner nodes and 12 byte for
leaf nodes) is again padded to multiples of the word size (8
byte on a 64-bit architecture) by most compilers.
In our approach, the octree is homogeneous by design,
that is, all nodes have the same structure and store occupancy. While inner nodes could potentially save 8 byte by
omitting occupancy information, maintaining it according
to Eq. (5) or (6) enables multi-resolution queries, where tree
traversal is stopped at a fixed depth.
Virtual inheritance between classes allows dynamic dispatch during run-time, at the cost of one extra pointer to the
virtual function table (vtable) for each object instance. To
minimize the memory footprint, we avoided this overhead in
the octree node implementation. We apply direct inheritance
and casts for the nodes, and use virtual inheritance only in
the octree classes. This method results in an overhead of the
size of only one pointer per octree map.
4.2 Octree Types
The most common octree and node types in our framework
are summarized in Fig. 8 as a UML diagram. The basic octree functionality is implemented in OcTreeBase, and the
basic node functionality is implemented in OcTreeDataNode. OcTreeDataNode is templated over data that is stored in
the node while OcTreeBase is templated over the node type.
OccupancyOcTreeBase adds occupancy mapping functionality to the tree implementation, such as scan insertions and
data child ptr
... ... ... ...
0.9
0.9 0.2 0.1
Fig. 7 Left: The first nodes of the octree example from Fig. 2 in memory connected by pointers. Data is stored as one float denoting occupancy. Right: The complete tree from Fig. 2 as compact serialized bitstream. All maximum-likelihood occupancy information can be stored
serially in only six bytes, using two bits for each of a node’s eight child
labels (00: unknown; 01: occupied; 10: free; 11: inner node with child
next in the stream).
Fig. 8 UML diagram of the most common octree and node classes.
ray casting. The main occupancy octree class OcTree derives from OccupancyOcTreeBase using OcTreeNode for its
nodes. This structure allows for flexible extensions of our
framework at different levels, e.g., to extend nodes with custom data or to add new functionality to the octree. One example is the implementation of ColorOcTree that uses ColorOcTreeNodes (illustrated in Fig. 5). These nodes store
color in addition to an occupancy estimate, as introduced
in Sect. 3.5.1.
The maximum tree depth is limited to 16 levels in our


` ~ground_filter/distance ` ( ` float ` , default: 0.04)


octomap_server loads a 3D map (as Octree-based OctoMap) and distributes it to
other nodes in a compact binary format. It also allows to incrementally build
3D OctoMaps, and provides map saving in the node octomap_saver.


** Dependencies  (14) **


* **kinetic:** _Documentation generated on January 26, 2021 at 11:22 AM_ ( [ doc job ](https://build.ros.org/view/Kdoc/job/Kdoc__octomap_mapping__ubuntu_xenial_amd64) ).


Released


New issue


#  Package Summary


  * [ autonomous_mapping ](/autonomous_mapping?distro=groovy)
  * [ next_best_view ](/next_best_view?distro=groovy)
  * [ pcl_cloud_tools ](/pcl_cloud_tools?distro=groovy)
  * [ pcl_to_octree ](/pcl_to_octree?distro=groovy)


  * Maintainer status: maintained
  * Maintainer: Wolfgang Merkt <opensource AT wolfgangmerkt DOT com>
  * Author: Armin Hornung
  * License: BSD
  * Bug / feature tracker: [ https://github.com/OctoMap/octomap_mapping/issues ](https://github.com/OctoMap/octomap_mapping/issues)
  * Source: git [ https://github.com/OctoMap/octomap_mapping.git ](https://github.com/OctoMap/octomap_mapping) (branch: kinetic-devel)


* [ UAV ](/questions/scope:all/sort:activity-desc/tags:UAV/page:1/)


Fig. 18 Effect of different clamping ranges on map compression and
accuracy in our three datasets. A higher clamping, resulting in a
smaller occupancy range, increases the efficiency of the octree compression (memory consumption, dashed blue). The Kullback-Leibler
divergence (KLD, red) measures the information loss between the unclamped map with full probabilities in [0:1] and a clamped representation. Our default clamping range [0.12:0.97] is shown for comparison
by horizontal lines in blue (dashed) for memory consumption and red
for the KLD.
free or occupied, losing any ability to filter noise with a
probabilistic update. Note that, while clamping is beneficial
for map compression, even with no clamping the lossless
compressed maps are smaller than a 3D grid (cf. Table 2).
6 Case Studies
Since its first introduction in 2010 (Wurm et al., 2010), the
OctoMap framework received a considerable interest and
has been used in several applications. These include 6D localization (Hornung et al., 2010), autonomous navigation
with air vehicles (Heng et al., 2011; Muller et al. ¨ , 2011),
autonomous navigation with humanoid robots (Oßwald
et al., 2012; Maier et al., 2012), 3D exploration (Shade
and Newman, 2011; Dornhege and Kleiner, 2011), 3D
SLAM (Hertzberg et al., 2011), 3D arm navigation (Ciocarlie et al., 2010), semantic mapping (Blodow et al., 2011),
and navigation in cluttered environments (Hornung et al.,
2012).
In the following, we will describe some of these use
cases in more detail in order to demonstrate the versatility
and ease of integration of the OctoMap library.
6.1 Localization in 3D
In our previous work (Hornung et al., 2010), we developed
a localization method based on OctoMap as 3D environment model. In this approach, the 6D torso pose of a humanoid robot in a complex indoor environment is tracked
with Monte Carlo localization based on 2D laser range
measurements, as well as IMU and joint encoder data.
For the particle filter observation model, we first used the
endpoint model and later an optimized ray-casting method
in combination with visual observations for local refinement (Oßwald et al., 2012). The resulting localization is
highly accurate and even enables the humanoid to climb spiral staircases. Our implementation is available open-source5
and uses the ray-casting functionality in OctoMap (see
Sect. 4.4.2). This enables the re-use for other robot localization systems.
6.2 Tabletop Manipulation
The ROS collider package6 builds a collision map based
on 3D point clouds. Sensor data from several sources, such
as a tilting laser and a stereo camera, are fused using OctoMap. Octree nodes were extended to store a time stamp
attribute that allows to gradually clear out nodes in dynamically changing environments. This new collision map enables the ROS arm navigation and grasping pipeline (Ciocarlie et al., 2010) to dynamically react to changes and to


* Angular threshold of the detected plane from the horizontal plane to be detected as ground


My idea was to use the parameter "occupancy_min/may_z" to define these layers
and subscribe to the topic "projected_map". This works to a certain degree.
The problem is, if an occupied cell only cuts the layer, but its midpoint is
above it, the projected map counts the area as free.


  * [ Distributions ](/Distributions)
  * [ ROS/Installation ](/ROS/Installation)
  * [ ROS/Tutorials ](/ROS/Tutorials)
  * [ RecentChanges ](/RecentChanges)
  * [ octomap_server ](/octomap_server)


  * Maintainer status: maintained
  * Maintainer: Armin Hornung <armin AT hornung DOT io>
  * Author: Armin Hornung
  * License: BSD
  * Bug / feature tracker: [ https://github.com/OctoMap/octomap_mapping/issues ](https://github.com/OctoMap/octomap_mapping/issues)
  * Source: git [ https://github.com/OctoMap/octomap_mapping.git ](https://github.com/OctoMap/octomap_mapping) (branch: jade-devel)


I am using the Octomap-Server-Package and aim to do the follwing: Given an
Octomap of an indoor environment i want to extract multiple projected maps
from the Octomap. The projected maps should only consider occupied cells at
specific height levels. For example all occupied cells between z-Values of 1.0
and 1.5, 1.5 and 2.0, and so on.


` ~pointcloud_[min|max]_z ` ( ` float ` , default: -/+ infinity)


Documented


* **melodic:** _Documentation generated on December 27, 2022 at 11:10 AM_ ( [ doc job ](https://build.ros.org/view/Mdoc/job/Mdoc__octomap_mapping__ubuntu_bionic_amd64) ).


[ how align imu data with lidar data ](/question/363155/how-align-imu-data-
with-lidar-data/)


` occupied_cells_vis_array ` ( [ visualization_msgs/MarkerArray
](http://docs.ros.org/en/api/visualization_msgs/html/msg/MarkerArray.html) )


    * [ Learning Pathways  ](https://resources.github.com/learn/pathways/)
    * [ White papers, Ebooks, Webinars  ](https://resources.github.com/)
    * [ Customer Stories ](/customer-stories)
    * [ Partners  ](https://partner.github.com/)


[ ![@laelliott](https://avatars.githubusercontent.com/u/31803076?s=80&v=4)
](/laelliott)


* [ Pricing ](/pricing)


#  Package Summary


  * Author: Armin Hornung
  * License: BSD
  * Source: svn [ https://alufr-ros-pkg.googlecode.com/svn/branches/octomap_mapping-electric ](https://alufr-ros-pkg.googlecode.com/svn/branches/octomap_mapping-electric)


#  Wiki


** Dependencies  (14) **


  * Immutable Page
  * Comments
  * [ Info ](/action/info/octomap_server?action=info)
  * [ Attachments ](/action/AttachFile/octomap_server?action=AttachFile)
  * More Actions:  Raw Text  Print View  Render as Docbook  Delete Cache  \------------------------  Check Spelling  Like Pages  Local Site Map  \------------------------  Rename Page  Copy Page  Delete Page  \------------------------  My Pages  Subscribe User  \------------------------  Remove Spam  Revert to this revision  Package Pages  Sync Pages  \------------------------  CreatePdfDocument  Load  RawFile  Save  SlideShow


[ ![PSimacek gravatar
image](//www.gravatar.com/avatar/62627f9ed7fede9262d7a254e5f4c9eb?s=32&d=identicon&r=PG)
](/users/36384/psimacek/)


* Minimum and maximum probability for clamping when dynamically building a map


` ~filter_ground ` ( ` bool ` , default: false)


Hebert M, Caillas C, Krotkov E, Kweon IS, Kanade T (1989) Terrain mapping for a roving planetary explorer. In: Proc. of the IEEE
Int. Conf. on Robotics & Automation (ICRA)
Heng L, Meier L, Tanskanen P, Fraundorfer F, Pollefeys M (2011) Autonomous obstacle avoidance and maneuvering on a vision-guided
MAV using on-board processing. In: Proc. of the IEEE Int. Conf. on
Robotics & Automation (ICRA)
Hertzberg C, Wagner R, Birbach O, Hammer T, Frese U (2011) Experiences in building a visual slam system from open source components. In: Proc. of the IEEE Int. Conf. on Robotics & Automation
(ICRA)
Hoppe H, DeRose T, Duchamp T, Mcdonald J, Stuetzle W (1992)
Surface reconstruction from unorganized points. SIGGRAPH Computer Graphics 26(2):71–78
Hornung A, Wurm KM, Bennewitz M (2010) Humanoid robot localization in complex indoor environments. In: Proc. of the IEEE/RSJ
Int. Conf. on Intelligent Robots and Systems (IROS)
OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees 17
Hornung A, Phillips M, Jones EG, Bennewitz M, Likhachev M,
Chitta S (2012) Navigation in three-dimensional cluttered environments for mobile manipulation. In: Proc. of the IEEE Int. Conf. on
Robotics & Automation (ICRA)
Kammerl J, Blodow N, Rusu RB, Gedikli S, Beetz M, Steinbach EG
(2012) Real-time compression of point cloud streams. In: Proc. of
the IEEE Int. Conf. on Robotics & Automation (ICRA)
Kelly A, Stentz A, Amidi O, Bode M, Bradley DM, Diaz-Calderon
A, Happold M, Herman H, Mandelbaum R, Pilarski T, Rander P,
Thayer S, Vallidis N, Warner R (2006) Toward reliable off road
autonomous vehicles operating in challenging environments. J of
Robotics Research 25(5-6):449–483
Kraetzschmar G, Gassull G, Uhl K (2004) Probabilistic quadtrees for
variable-resolution mapping of large environments. In: Ribeiro MI,
Victor SJ (eds) Proc. of the 5th IFAC/EURON Symposium on Intelligent Autonomous Vehicles, Lisbon, Portugal
Krainin M, Henry P, Ren X, Fox D (2011) Manipulator and object
tracking for in-hand 3d object modeling. J of Robotics Research
30(11):1311–1327
Laine S, Karras T (2010) Efficient sparse voxel octrees. In: ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games
Magnusson M, Duckett T, Lilienthal AJ (2007) Scan registration
for autonomous mining vehicles using 3D-NDT. Journal of Field
Robotics 24(10):803–827
Maier D, Hornung A, Bennewitz M (2012) Real-time navigation in 3d
environments based on depth camera data. In: Proc. of the IEEERAS Int. Conf. on Humanoid Robots (Humanoids)
Mason J, Ricco S, Parr R (2011) Textured occupancy grids for monocular localization without features. In: Proc. of the IEEE Int. Conf. on
Robotics & Automation (ICRA)
Meagher D (1982) Geometric modeling using octree encoding. Computer Graphics and Image Processing 19(2):129–147
Moravec H (1996) Robot spatial perception by stereoscopic vision and
3D evidence grids. Tech. Rep. CMU-RI-TR-96-34, Robotics Institute, Pittsburgh, PA


####  Parameters


_**[ octomap_mapping ](/octomap_mapping?distro=jade) ** : octomap_server _


Open


** Jenkins jobs  (6) **


Explore


_EOL distros:_ electric  fuerte  groovy  hydro  indigo  jade  kinetic


Hopefully you aren't still stuck on this but in case someone else is.


* The complete maximum-likelihood occupancy map as compact OctoMap binary stream, encoding free and occupied space. The binary message only distinguishes between free and occupied space but is smaller. See [ octomap_msgs ](/octomap_msgs) for deserializing the message.


` octomap_point_cloud_centers ` ( [ sensor_msgs/PointCloud2
](http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud2.html) )


[ How can i bridge and display images from realsense d435 camera?
](/question/354676/how-can-i-bridge-and-display-images-from-
realsense-d435-camera/)


[ ![@laelliott](https://avatars.githubusercontent.com/u/31803076?s=52&v=4)
](/laelliott) [
![@ndugdale](https://avatars.githubusercontent.com/u/67626400?s=52&v=4)
](/ndugdale) [
![@aladin2022](https://avatars.githubusercontent.com/u/98184487?s=52&v=4)
](/aladin2022)


modeling in order to meet the requirements discussed above.
A central property of our approach is that it allows for efficient and probabilistic updates of occupied and free space
while keeping the memory consumption at a minimum. Occupied space is obtained by the end points of a distance
sensor such as a laser range finder, while free space corresponds to the observed area between the sensor and the end
point. As a key contribution of our approach, we introduce a
compression method that reduces the memory requirement
by locally combining coherent map volumes, both in the
mapped free areas and the occupied space. We implemented
our approach and thoroughly evaluated it using various publicly available real-world robotics datasets of both indoor
and outdoor environments.
Our open source implementation is freely available
in form of a self-contained C++ library. It was released under the BSD-license and can be obtained from
http://octomap.github.com. The library supports several
platforms, such as Linux, Mac OS, and Windows. It has been
integrated into the Robot Operating System (ROS) and can
be used in other software frameworks in a straightforward
way. Since its first introduction in 2010 (Wurm et al., 2010),
the OctoMap framework was constantly improved and used
in an increasing number of robotics research projects.
This paper is organized as follows. After providing a
detailed discussion of related work in the area of 3D data
structures and mapping approaches in the next section, we
present our OctoMap framework in Sect. 3. Implementation
details are given in Sect. 4, followed by an evaluation of the
proposed framework in Sect. 5. Finally, case studies on how
OctoMap has been used in various areas of robotics demonstrate the versatility and ease of integration in Sect. 6.
2 Related Work
Three-dimensional models of the environment are a key prerequisite for many robotic systems and consequently they
have been the subject of research for more than two decades.
A popular approach to modeling environments in 3D is
to use a grid of cubic volumes of equal size, called voxels, to
discretize the mapped area. Roth-Tabak and Jain (1989) as
well as Moravec (1996) presented early works using such a
OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees 3
representation. A major drawback of rigid grids is their large
memory requirement. The grid map needs to be initialized
so that it is at least as big as the bounding box of the mapped
area, regardless of the actual distribution of map cells in
the volume. In large-scale outdoor scenarios or when there
is the need for fine resolutions, memory consumption can


* **jade:** _Documentation generated on November 23, 2016 at 11:23 AM_ ( [ doc job ](http://build.ros.org/view/Jdoc/job/Jdoc__octomap_mapping__ubuntu_trusty_amd64) ).


Search


edit


octomap_server loads a 3D map (as Octree-based OctoMap) and distributes it to
other nodes in a compact binary format. See octomap_saver on how to request or
save a map file. A visualization of the occupied cells is sent as MarkerArray.


Asked: ** 2018-07-11 15:17:47 -0500  **


* Probabilities for hits and misses in the sensor model when dynamically building a map


  * [ catkin ](/catkin?distro=noetic)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=noetic)
  * [ nav_msgs ](/nav_msgs?distro=noetic)
  * [ nodelet ](/nodelet?distro=noetic)
  * [ octomap ](/octomap?distro=noetic)
  * [ octomap_msgs ](/octomap_msgs?distro=noetic)
  * [ octomap_ros ](/octomap_ros?distro=noetic)
  * [ pcl_conversions ](/pcl_conversions?distro=noetic)
  * [ pcl_ros ](/pcl_ros?distro=noetic)
  * [ roscpp ](/roscpp?distro=noetic)
  * [ sensor_msgs ](/sensor_msgs?distro=noetic)
  * [ std_msgs ](/std_msgs?distro=noetic)
  * [ std_srvs ](/std_srvs?distro=noetic)
  * [ visualization_msgs ](/visualization_msgs?distro=noetic)


Is there any work-around for this problem? Ideally i want to use the
projected_map topic. If that's not possible....could anyone give me a hint on
how to implement this kind of layered projection? Maybe by interating through
the octree?


  * [ arm_navigation_msgs ](/arm_navigation_msgs?distro=groovy)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=groovy)
  * [ nav_msgs ](/nav_msgs?distro=groovy)
  * [ nodelet ](/nodelet?distro=groovy)
  * [ octomap ](/octomap?distro=groovy)
  * [ octomap_msgs ](/octomap_msgs?distro=groovy)
  * [ octomap_ros ](/octomap_ros?distro=groovy)
  * [ pcl_ros ](/pcl_ros?distro=groovy)
  * [ sensor_msgs ](/sensor_msgs?distro=groovy)
  * [ std_msgs ](/std_msgs?distro=groovy)
  * [ std_srvs ](/std_srvs?distro=groovy)
  * [ visualization_msgs ](/visualization_msgs?distro=groovy)


* [ The ReadME Project  GitHub community articles  ](/readme)


Sign up for GitHub


[ Merge two or more depth images ](/question/307649/merge-two-or-more-depth-
images/)


Contents